如何正确关闭node-express服务器?

我需要从/auth/github/callback 网址获得回调后关闭服务器。使用通常的

关闭服务器当前支持server.close([callback])

API功能,但是使用节点表达服务器时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();

回答:

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-express服务器? 的全部内容, 来源链接: utcz.com/qa/432497.html

回到顶部