如何正确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()