Express 后端 Mongodb 2分钟请求超时

分类 - 代码 共有 0 条评论

当时我在写一个前端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);
文章评论