Node.js集群没有监听

时间:2013-08-12 09:28:11

标签: node.js

我正在尝试构建一个“Hello World”多进程node.js HTTP服务器。

使用节点文档here中提供的代码示例我无法触发“侦听”事件,因此无法响应请求的HTTP服务器。然而,我正在开展“在线”活动。

如何让此服务器响应请求?

我在OSX 10.8.4上运行,节点v0.10.7。

这就是我所拥有的:

var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
  // Fork workers.
  for (var i = 0; i < numCPUs; i++) {
    cluster.fork();
  }

  cluster.on('online', function(worker) {
    console.log('A worker with #' + worker.id);
  });
  cluster.on('listening', function(worker, address) {
    console.log('A worker is now connected to ' + address.address + ':' + address.port);
  });
  cluster.on('exit', function(worker, code, signal) {
    console.log('worker ' + worker.process.pid + ' died');
  });
} else {
  // Workers can share any TCP connection
  // In this case its a HTTP server
  http.createServer(function(req, res) {
    res.writeHead(200);
    res.end('hello world\n');
  }).listen(8000);
}

1 个答案:

答案 0 :(得分:0)

我通过直接运行文件解决了这个问题。以前,我运行了server.js,这是一个单行:

server.js

require("./server/app.js");

server / app.js (问题中的代码段)

通过运行node app.js代替node server.js群集开始侦听。不知道为什么这会产生影响。