mongodb 如何解决此错误:MongooseError:操作`users.insertOne()`缓冲在超时10000ms后超时,< anonymous>

bxgwgixi  于 2023-08-04  发布在  Go
关注(0)|答案(1)|浏览(226)

我正在学习mongoose教程,并在script.js中编写了此代码

  1. const mongoose = require("mongoose")
  2. const User = require("./User");
  3. mongoose.connect("mongodb://localhost/testdb");
  4. run();
  5. async function run() {
  6. const user = await User.create({name: "xyz", age: 26});
  7. console.log(user);
  8. }
  9. console.log("Hi")

字符串
这是我在User.js上的代码

  1. const mongoose = require("mongoose")
  2. const userSchema = new mongoose.Schema({
  3. name: String,
  4. age: Number
  5. })
  6. module.exports = mongoose.model("User", userSchema)


我正在编写与教程中所示完全相同的代码,对他来说,它工作正常,但对我来说,我得到了以下错误:node script.js Hi const err = new MongooseError(message);^
MongooseError:操作users.insertOne()缓冲在超时10000 ms后超时。(C:\Users\hp\Desktop\MongooseDB\node_modules\mongoose\lib\drivers\node-mongodb-native\collection.js:185:23)at listOnTimeout(node:internal/timers:569:17)at process.processTimers(node:internal/timers:512:7)
Node.js v18.16.1
我已经意识到,涉及异步函数的代码会导致一些问题,因为没有它,代码运行良好。
我已经意识到,涉及异步函数的代码会导致一些问题,因为没有它,代码运行良好。我在过去的4个小时里一直在为这件事挠头,但没有帮助。

tpxzln5u

tpxzln5u1#

无论出于何种原因,您都没有连接到数据库。
Mongoose让您可以立即开始使用模型,而无需等待mongoose建立与MongoDB的连接。Mongoose在默认情况下不会抛出任何错误,如果你使用一个没有连接的模型。
您需要捕获错误以了解连接发生了什么。使用此代码查看您的问题。

  1. try {
  2. mongoose.connect("mongodb://localhost/testdb");
  3. } catch (error) {
  4. console.log(error);
  5. }

字符串
通常情况下,您的连接字符串存在问题,Internet连接速度缓慢或身份验证凭据错误。通过查看连接字符串,我可以想象问题的根源是连接字符串。您很可能需要指定端口(默认为27017)。试试这个:

  1. mongoose.connect("mongodb://localhost:27017/testdb");

展开查看全部

相关问题