如何正确关闭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 --versionv0.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

