const numCPUs = require('os').cpus().length;if (cluster.isMaster) { console.log(`Master ${process.pid} is running`); // Fork workers. for (let i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on('exit', (worker, code, signal) => { console.log(`Worker ${worker.process.pid} died`); });} else { // Workers can share any TCP connection // In this case it is an HTTP server http.createServer((req, res) => { res.writeHead(200); res.end('Hello World\n'); }).listen(8000); console.log(`Worker ${process.pid} started`);}
http.createServer((req, res) => { if (req.url === '/') { res.writeHead(200, {'Content-Type': 'text/html'}); res.write('<h1>Welcome to the Home Page</h1>'); } else if (req.url === '/about') { res.writeHead(200, {'Content-Type': 'text/html'}); res.write('<h1>About Us</h1>'); } else { res.writeHead(404, {'Content-Type': 'text/html'}); res.write('<h1>404 Not Found</h1>'); } res.end();}).listen(3000);console.log('Server is running on port 3000');
复制代码
处置惩罚POST请求
处置惩罚POST请求通常需要读取请求体,可以使用data和end变乱。
const http = require('http');
http.createServer((req, res) => { if (req.method === 'POST' && req.url === '/submit') { let body = []; req.on('data', chunk => { body.push(chunk); }).on('end', () => { body = Buffer.concat(body).toString(); console.log('Received POST body:', body); res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Data received\n'); }); } else { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Not a POST request or not /submit endpoint\n'); }}).listen(3000);console.log('Server is running on port 3000');
复制代码
使用Express框架
Express是Node.js中最盛行的web框架,简化了路由、中心件使用等。
示例:使用Express构建RESTful API