yve*_*lem 4 process node.js server
节点文件可以描述从服务器到简单脚本,甚至只能打印到控制台的东西:
//logger.js
console.log('Hello World');
// in the terminal
> node logger.js
Hello World
>
如何http包(及其他)不给命令提示符返回给用户; 他们如何让这个过程保持活力?
//server
require('http').createServer(function (req, res) {
  res.end('Hello World');
}).listen(3000);
// in the terminal
> node server.js
// process stays in the foreground, no prompt back
如果有正在侦听的套接字,节点将不会退出.这就是TL; DR答案.(谈论事件队列的其他答案是正确的,因为这可能是程序不能退出的原因,但这不是正在发生的事情server.listen().)
在引擎盖下,http.createServer()(最终)调用server.listen()Calling server.listen()将保持进程退出,因为server.listen()创建了一个套接字.注意从文档为socket.ref():
与unref相反,在先前未刷新的套接字上调用ref将不会让程序退出,如果它是唯一的套接字(默认行为).如果套接字是refd再次调用ref将无效.
如果这是事件系统中唯一的活动套接字,则在套接字上调用unref将允许程序退出.如果套接字已经unfd,则再次调用unref将无效.
如果你想从那里进入下一级别,我相信你需要深入研究Node.js/io.js的C或C++.
| 归档时间: | 
 | 
| 查看次数: | 128 次 | 
| 最近记录: |