当时我在写一个前端React、后端express + mongodb的项目。前端在请求Mongodb超过5万条数据的时候总是请求失败,并且还会在后端请求2次,前端返回:failed with status code 504
。很是奇怪!!!
我设置了nginx超时设定:
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
axios超时设定:
axios.post(URL + url, values, {
headers: {
"Content-Type": "application/json",
Authorization: token,
},
onUploadProgress: onUploadProgress,
timeout:8650000,
});
mongodb超时设定:
await mongoose.connect(
"mongodb://***:*****@****:*****/msmpicp?authSource=admin&readPreference=primary&gssapiServiceName=mongodb&appname=MongoDB%20Compass&ssl=false",
{
useNewUrlParser: true,
useUnifiedTopology: true,
connectTimeoutMS: 10000000,
socketTimeoutMS: 10000000,
numberOfRetries:1
}
);
发现并没有什么用!!!!还是会在2分钟自动重新请求,最后一次偶然的契机我发现express也有超时设定,设置了express的超时设定以后,解决了这个问题。
import express from "express";
const app = express();
let server = app.listen(3001, () => {
console.log("msmpicp server listening on port 3001!");
});
server.setTimeout(600000000);
本文由 suxi 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: 2023/04/19 12:06