我看到很多关于如何使用Connect创建服务器的示例,但是如何在没有 ctrl + c 的情况下优雅地关闭它?
我的用例是为测试/模拟目的启动一个轻量级连接服务器。
我看到很多关于如何使用Connect创建服务器的示例,但是如何在没有 ctrl + c 的情况下优雅地关闭它?
我的用例是为测试/模拟目的启动一个轻量级连接服务器。
Connect 使用 Node 内置的 HTTP 库,因此您只需调用 server.close(): http://nodejs.org/api/http.html#http_server_close_callback。您也可以使用 process.exit(0) 退出应用程序;返回到启动您的应用程序的外壳。
请记住 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);
我刚刚意识到不是以这种方式编写服务器:
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();