const http = require('http');
const express = require('express');
const mysql = require('mysql');
const cluster = require('cluster');
const numCPUs = require('os').cpus().length;
const app = express();
// 多进程
if (cluster.isMaster) {
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', () => {
console.log(`工作进程 ${process.pid} 已退出`);
});
} else {
const server = app.use(express.static(__dirname)).listen(3000, 'localhost', () => {
const host = server.address().address;
const port = server.address().port;
console.log("工作进程 %s 运行在 http://%s:%s", process.pid, host, port);
});
}
// 路由
app.get('/', (req, res) => {
res.writeHead(200, {'Content-Type': 'text/html;charset=utf-8'});
res.end('<a href="/home">home</a><br/><a href="/about">about</a>');
});
app.get('/home', (req, res) => {
res.writeHead(200, {'Content-Type': 'text/html;charset=utf-8'});
res.end('<div>'+cluster.worker.id+'</div><div>'+process.pid+'</div>');
});
app.get('/about', (req, res) => {
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '123456',
port: '3306',
database: 'download'
});
var sql = 'SELECT * FROM imooc';
connection.query(sql, (err, result) => {
if(err){
console.log('[SELECT ERROR] - ',err.message);
return;
}
res.writeHead(200, {'Content-Type': 'text/html;charset=utf-8'});
res.end(JSON.stringify(result));
});
});