如何正确closuresnode-express服务器?

我需要在从/auth/github/callback url获得callback后closures服务器。 与通常的HTTP APIclosures服务器目前支持与server.close([callback]) API函数,但与节点快递服务器我得到TypeError: Object function app(req, res){ app.handle(req, res); } has no method 'close' TypeError: Object function app(req, res){ app.handle(req, res); } has no method 'close'错误。 而且我不知道如何find信息来解决这个问题。
我应该如何closures快递服务器?

NodeJSconfiguration说明:

 $ node --version v0.8.17 $ npm --version 1.2.0 $ npm view express version 3.0.6 

实际应用代码:

 var app = express(); // configure Express app.configure(function() { // … configuration }); app.get( '/auth/github/callback', passport.authenticate('github', { failureRedirect: '/login' }), function(req, res) { res.redirect('/'); setTimeout(function () { app.close(); // TypeError: Object function app(req, res){ app.handle(req, res); } has no method 'close' }, 3000) } ); app.listen('http://localhost:5000/'); 

此外,我发现'nodejsexpression密切…',但我不知道如果我可以使用代码我有: var app = express();

app.listen()返回http.Server 。 您应该在该实例上调用close() ,而不是在app实例上调用。

防爆。

 app.get( '/auth/github/callback', passport.authenticate('github', { failureRedirect: '/login' }), function(req, res) { res.redirect('/'); setTimeout(function () { server.close(); // ^^^^^^^^^^^ }, 3000) } ); var server = app.listen('http://localhost:5000/'); 

你可以检查源代码: /node_modules/express/lib/application.js

在快递v3中,他们删除了这个function。

您仍然可以通过分配app.listen()函数的结果并在其上应用close来实现同样的效果:

 var server = app.listen(3000); server.close() 

https://github.com/visionmedia/express/issues/1366