我是node.js的新手,我不能轻易谷歌的第一件事就是关注。考虑最典型的node.js示例:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
node.js如何知道在最后一行执行后它不应该退出?来自.NET我有一个简化的假设,即当所有非后台线程终止时进程退出。由于node.js是单线程的,我相信应该有一些逻辑监视事件订阅,它将决定是否还有可能被触发的事件,否则node.js可以终止。不幸的是,我找不到任何关于此的文档。有人可以帮忙吗?
答案 0 :(得分:2)
何时退出?
否则,如果没有定义请求处理程序,并且它不再监听任何事件并且所有代码语句都被执行,那么它将退出 为exaple: 只包含一个语句的简单服务器是:
console.log('Hiii');
这将在执行最后一个语句后立即退出,因为我们不希望它监听任何事件。
答案 1 :(得分:2)
如果您来自.NET后台,则可能编写了一些通过IIS托管的ASP.NET Web应用程序。在这种情况下,您的.NET框架会创建一个应用程序线程池来处理传入请求,执行页面并将响应发送回客户端。因此,您的页面执行由.NET框架处理。在整个过程中,IIS继续监听传入的请求并处理对适当的工作者/线程的请求 Node.JS的工作方式与您刚刚指示Node如何处理请求的方式相同。创建服务器时,节点会打开套接字以侦听传入请求。但是,由于没有写入关闭命令,因此您的服务器将继续运行。
要了解节点如何处理/处理请求,请访问
http://strongloop.com/strongblog/node-js-performance-event-loop-monitoring/
http://strongloop.com/strongblog/node-js-event-loop/
要了解如何关闭服务器访问 http://nodejs.org/api/net.html#net_server_close_callback