Mongoose 错误:10000 毫秒后缓冲超时

问题描述 投票:0回答:1

我想在 VS Code 中使用 Thunder 客户端扩展连接 Mongodb。

这是我到目前为止所得到的,但现在我在连接应用程序崩溃时遇到错误。

const mongoose = require('mongoose');

const mongoURI = "mongodb+srv://****:****@cluster0.jswzjap.mongodb.net"

const connectToMongo = ()=>{
    mongoose.connect(mongoURI, ()=>{
        console.log("Connected to Mongo Successfully");
    })
}

module.exports = connectToMongo;

这是连接字符串的代码

D:\I NOTE2\inote3\backend>nodemon ./index.js
[nodemon] 3.0.2
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,cjs,json
[nodemon] starting `node ./index.js`
Example app listening on port http://localhost:3000
{ name: 'xyz', email: '[email protected]', password: '4567' }
D:\I NOTE2\inote3\backend\node_modules\mongoose\lib\drivers\node-mongodb-native\collection.js:186
          const err = new MongooseError(message);
                      ^

MongooseError: Operation `users.insertOne()` buffering timed out after 10000ms
    at Timeout.<anonymous> (D:\I NOTE2\inote3\backend\node_modules\mongoose\lib\drivers\node-mongodb-native\collection.js:186:23)
    at listOnTimeout (node:internal/timers:569:17)
    at process.processTimers (node:internal/timers:512:7)

Node.js v18.17.1
[nodemon] app crashed - waiting for file changes before starting...

这是我遇到的错误。

javascript mongodb express mongoose nodemon
1个回答
0
投票

将您的

db.js
文件更改为
async
函数:

const mongoose = require('mongoose');

const mongoURI = "mongodb+srv://****:****@cluster0.jswzjap.mongodb.net"

const connectToMongo = async ()=>{
   try {
      // await the connection
      const con = await mongoose.connect(mongoURI);
      console.log(`Connected to mongodb: ${con.connection.host}`);
   } catch (error) {
      throw error;
   }
}

module.exports = connectToMongo;

然后在你的

index.js
中你需要调用该函数。仅使用
require
导入它是不够的:

const connectToMongo = require('./db'); 
const express = require('express');
const app = express();
const port = 3000;
app.use(express.json()) // for parsing application/json 

// Now you need to call connectToMongo function
connectToMongo().then(()=> {
   console.log('Connected to db');
}).catch(e => {
   console.log('Error Connecting to db: ', e);
})
  
// Available routes 
app.use('/api/auth', require('./routes/auth'));
app.use('/api/notes',require('./routes/notes'));
app.get('/', (req,res)=>{   res.send("hoo") });
app.listen(port, () => {   
   console.log(`Example app listening on port http://localhost:${port}`) 
});

© www.soinside.com 2019 - 2024. All rights reserved.