我需要从/auth/github/callback 网址获得回调后关闭服务器。使用通常的 HTTP API, 关闭服务器当前支持server.close([callback]) API功能,但是使用节点表达服务器时TypeError: Object function app(req, res){ app.handle(req, res); } has no method 'close' 出现错误。而且我不知道如何找到解决此问题的信息。 我应该如何关闭快递服务器?
/auth/github/callback
server.close([callback])
TypeError: Object function app(req, res){ app.handle(req, res); } has no method 'close'
NodeJS配置说明:
$ 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/');
另外,我发现[‘nodejs expressclose…’,]但是我不确定是否可以将其用于具有以下代码的代码中:var app =express();。
var app =express();
app.listen()返回http.Server。您应该close()在该实例而不是app实例上调用。
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
/node_modules/express/lib/application.js