关闭连接服务器

时间:2013-05-07 02:47:48

标签: node.js connect

我看到很多关于如何使用Connect创建服务器的示例,但是如何在没有ctrl + c的情况下正常关闭它?

我的用例是启动轻量级连接服务器以进行测试/模拟。

2 个答案:

答案 0 :(得分:1)

Connect在HTTP库中使用Node的构建,因此您只需调用server.close(): http://nodejs.org/api/http.html#http_server_close_callback。您也可以使用process.exit(0)退出应用程序;返回启动应用程序的shell。

请记住,http.close()只是停止接受新连接,具体取决于您的应用的结构,它仍然可能无法退出。现有连接将被关闭,直到它们自行关闭。

以下是使用Connect和http混合的示例:

var connect = require('connect')
   , http = require('http');

var app = connect()
   .use(connect.favicon())
   .use(connect.logger('dev'))
   .use(connect.static('public'))
   .use(connect.directory('public'))
   .use(connect.cookieParser())
   .use(connect.session({ secret: 'my secret here' }))
   .use(function(req, res){
      res.write('Hello from Connect!\n');
      res.end();
      //stop accepting new connections:
      srv.close();
      //exit the app too:
      process.exit(0);


});

var srv =  http.createServer(app).listen(3000);                                              

答案 1 :(得分:0)

我刚刚意识到不是用这种方式编写服务器:

var app = connect()
.use(function(req, res, next){
    res.end('hello world')
})
.listen(3000); 

我可以这样创建服务器:

var app = connect()
.use(function(req, res, next){
    res.end('hello world')
}); 
var server = http.createServer(app).listen(3000, done);

因此,允许我使用server.close();