我看到很多关于如何使用Connect创建服务器的示例,但是如何在没有ctrl + c的情况下正常关闭它?
我的用例是启动轻量级连接服务器以进行测试/模拟。
答案 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();