我的应用程序正在反应,并通过node
调用来调用axios
层。然后node
层会调用一个外部api
,大约需要7分钟的时间来响应。但是,从发出请求开始,我在大约2-3分钟内收到超时错误。当我直接(而不是通过节点层)调用外部api
时,我可以在7分钟内得到响应。我尝试使用
timeout
设置node
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end("Hello World");
}).on('connection', function(socket) {
socket.setTimeout(200000000);
}).listen(3000);
,还使用 server.timeout ,但似乎没有任何效果。有人可以建议如何解决该问题。
我遇到以下错误
createError时出现网络错误(webpack-internal:///../node_modules/axios/lib/core/createError.js:16:15
我正在使用axios
axios.post('/api/parseAndExtractFile', formData, config)
.then((response) => {
if (response.status === 200) {
const fileName = `enriched_v3_spec_${new Date().getTime()}`
const blob = new Blob([(response.data)], {type: 'application/vnd.ms-excel.sheet.macroEnabled.12'})
saveAs(blob, fileName)
} else {
toast.error('Oops, something went wrong. Please try again.', {autoClose: 4000})
}
this.setState({
loading: false,
showAuditLog: 'show'
})
})
.catch((error) => {
this.setState({loading: false})
toast.error(`Error while fetching data ${error}`, {autoClose: 4000})
})
答案 0 :(得分:0)
节点和axios都超时
1)设置节点超时
var http = require('http');
var srvr = http.createServer(function (req, res) {
res.write('Hello World!');
res.end();
});
srvr.listen(8080);
srvr.timeout = 20000; // in milliseconds
2)设置axios的超时时间
const instance = axios.create({
baseURL: 'https://some-domain.com/api/',
timeout: 10000, // in milliseconds
headers: {'X-Custom-Header': 'foobar'}
});
答案 1 :(得分:0)
我认为您在错误的位置调用了setTimeOut。您可能需要在var中设置createServer,然后按如下所示对其调用setTimeOut:
`var http = require('http');
var srv = http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end("Hello World");
})
svr.listen(3000);
svr.setTimeout(10000);
希望这会有所帮助