我需要编写一个程序来从nodejs中的一些现有服务中获取一些json数据。但是,通过关注我的应用程序中的实时条件,我需要确保答案准备不会花费更长的时间,例如2秒。 在那段时间之后,我想切断已建立的连接,并从我自己的数据库向客户端提供我的数据。 我搜索了很多,但我发现的唯一一件事是在http.request中为socket设置超时,如下所示。
var options = { ... }
var req = http.request(options, function(res) {
// Usual stuff: on(data), on(end), chunks, etc...
}
/* This does not work TOO MUCH... sometimes the socket is not ready (undefined) expecially on rapid sequences of requests */
req.socket.setTimeout(myTimeout);
req.socket.on('timeout', function() {
req.abort();
});
只有在无法访问服务器或无法联系服务器时,才会执行上述代码。但我的问题是强制关闭连接。 有没有人有任何想法?
答案 0 :(得分:1)
尝试request模块。对于像这样的东西真的很棒:
var request = require('request');
request({
method: 'GET',
uri: 'http://www.example.com',
timeout: 2000,
}, (err, response, body) => {
if (err) {
return console.error(err);
}
console.log(response);
});