我开发了一个nodejs服务器并对客户端应用程序做出反应。客户端使用axios从服务器请求信息。必须从数据库中检索此信息,大约需要5分钟。但客户端在2分钟后重新完成请求。我如何要求客户等待5分钟。
客户端代码
axios.get(apiServer + 'teradata/'+table).then( (resp) => {
console.log(resp.data.data)
)
在服务器中,我试过以下。但没有任何作用。
server.on('connection', function(socket) {
//Teradata takes too long to respond. Set timeoute to 3 mins
socket.setTimeout(0);
})
server.on('connection', function(socket) {
//Teradata takes too long to respond. Set timeoute to 3 mins
socket.setTimeout(60 * 6 * 1000);
// 30 second timeout. Change this as you see fit.
})
更新: 在进一步调试时,我看到了 1.重试源自浏览器。因为,重试发生在firefox中,但不是在chrome中。 2.连接正好在2分钟后断开。这导致firefox重试。
我在快递js中使用了以下代码,并发现它确实断开连接。但我不知道是谁断开了它。是axios还是表达js?
req.on("close", function() {
console.log('request closed unexpectedly')
});
req.on("end", function() {
console.log('equest ended normally')
});
答案 0 :(得分:0)
根据文档,您可以创建axios实例并配置超时。
const instance = axios.create({
baseURL: 'https://some-domain.com/api/',
timeout: 5000,
headers: {'X-Custom-Header': 'foobar'}
});