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

标签 javascript api node.js webserver express

/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/

相关文章:

javascript - 搜索字符串但忽略标签

javascript - Stack Overflow API - 端点问题

node.js - Cassandra Node.js 驱动程序不接受破折号分隔的字符串

javascript - 使用异步队列控制数据库连接请求

javascript - 如何防止 sails.js 在所有 View 上传递 req 对象?

javascript - TinyMCE 把 <img/> 变成 <img>

javascript - 剑斗 : Get tab name when click on tab in kendoui

javascript - 使用 Javascript 和 Moment.js 获取天数

javascript - 客户端计算机未连接到服务器

javascript - angularJS $http.get 与 API 通信