我正在为我的模块编写测试脚本,我需要能够在请求完成后关闭我的服务器。以下代码有效,但我可以看到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(),否则测试将失败。
答案 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()
相同。