从 /auth/github/callback
获得回调后我需要关闭服务器
网址。与通常的 HTTP API 关闭
服务器当前支持 server.close([callback])
API 函数,但使用 node-express 服务器我得到 TypeError: Object function app(req, res){ app.handle(req, res); } 没有“关闭”方法
错误。而且我不知道如何找到信息来解决这个问题。
我应该如何关闭 express 服务器?
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 express close…’但我不确定是否可以将它与我拥有的代码一起使用:var app = express();
.
最佳答案
app.listen()
返回 http.Server
。您应该在该实例而不是 app
实例上调用 close()
。
例如
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
关于javascript - 如何正确关闭 node-express 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14515954/