nodejs在请求完成时表达关闭服务器

时间:2012-11-08 16:27:47

标签: node.js express

我正在为我的模块编写测试脚本,我需要能够在请求完成后关闭我的服务器。以下代码有效,但我可以看到app.close()已从express 3中删除。现在最好的方法是什么?

var testCase = require('nodeunit').testCase;
var request = require('request');
var express = require('express');

var app = express.createServer();
var srv = app.listen();
....

request({
    method: 'POST',
    json: true,
    body: { id: 'second request'},
    url: 'http://' + target
  }, function(err, res, body) {

    console.info("closing server");
    app.close();
    test.done();
  });
});

谢谢, 李

P.S。关闭服务器后必须调用test.done(),否则测试将失败。

1 个答案:

答案 0 :(得分:2)

用于继承http.Server的Express应用程序,它们不再使用,而close方法来自此处。而是在close()实例上调用srv。您通常可以将此代码视为:

var app = express.createServer();
var srv = require('http').createServer(app);
srv.listen(port);

根据app.listen()的{​​{1}}:

  

绑定并侦听给定主机和端口上的连接,此方法与节点http.Server#listen()相同。