簡體   English   中英

“消息”:“errorMongooseError:操作 `userinfos.insertOne()` 緩沖在 10000 毫秒后超時”

[英]"message": "errorMongooseError: Operation `userinfos.insertOne()` buffering timed out after 10000ms"

我目前正在使用 MongoDB 和 Express 創建一個新的 API,我目前遇到這個問題“消息”:

“errorMongooseError:操作userinfos.insertOne()緩沖在 10000 毫秒后超時”

他是我設置 API 調用的方式:

const express=require('express');
const router=express.Router();
const Userinfo=require("../Models/Userinfo")

router.get('/',(req,res)=>{
    res.send("we are Post")

});



router.get('/Specic', async(req,res)=>{
    try{
        const data=await Userinfo.find();
        console.log(data);
        res.json(data)
    }
    catch(err)
    {
        res.json({message:err})
    }

})
router.post("/",(req,res)=>{
const test= new Userinfo({
    "Fname":req.body.Fname,
    "Lname":req.body.Lname
});
console.log(test);
test.save().then(data=>{
    res.json(data);
}).catch((err)=>{res.json({message:"error"+err})})
})
module.exports=router;

MoDel 像這樣定義Userinfo.js

const mongoose=require('mongoose');
/*const PoistSchema=mongoose.Schema({
    Fname:String,
    Lname:String,
    DOB:Date.now()
});*/

const PostSchema=mongoose.Schema({
    Fname:{
        type:String,
        require:true
    },
    Lname:{
        type:String,
        require:true
    },
    DOB:{
        type:String,
        default:Date.now
    },
});

module.exports=mongoose.model("Userinfo",PostSchema)

應用程序.js

const express=require('express');
const app=express();
const mongoose=require('mongoose');
require("dotenv/config");
const bodyParser=require("body-parser")
///Middlewares
//app.use(auth);
app.use(bodyParser.json());
const postroutes=require("./Routes/Posts");
app.use("/post",postroutes)

app.get('/',(req,res)=>{
    res.send("we are om")

})

app.get('/posts',(req,res)=>{
    res.send("we are Post")

})
try {
     mongoose.connect(process.env.DBConnection,{useNewUrlParser: true,
        useUnifiedTopology: true,
        useCreateIndex:true},()=>{
         console.log("Sucess");
     },(error)=>{
         console.log(error);

     });
     console.log("ConnectedZZ")

  } catch (error) {
      console.log(error);
  }
app.listen(3000);

是否有任何插入和獲取數據的建議。獲取數據時沒有任何錯誤。

發生此問題可能有多種原因,但讓我們從以下開始:

正如我們可以在文檔中看到的那樣

Mongoose 讓您可以立即開始使用您的模型,而無需等待 mongoose 與 MongoDB 建立連接。 這是因為 mongoose 緩沖 model function 內部調用。 這種緩沖很方便,但也是一個常見的混淆來源。 如果您在沒有連接的情況下使用 model,ZCCADCDEDB567ABAE643E15DCF0974E503Z 默認不會拋出任何錯誤。

所以看起來你的model建立連接之前被調用了。 要處理此錯誤,您應該使用 .catch() 或 try/catch 和async/await 。這應該可以解決您的問題。


在這里,您有示例代碼段:

(async () => {
  try {
    await mongoose.connect(process.env.DBConnection)
    console.log('MongoDB connected!!');
  } catch (err) {
    console.log('Failed to connect to MongoDB', err);
  }
})()

您可以在調用 DB 調用之前確認 DB 是否正確。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM