我正在学习mongoose教程,并在script.js中编写了此代码
const mongoose = require("mongoose")
const User = require("./User");
mongoose.connect("mongodb://localhost/testdb");
run();
async function run() {
const user = await User.create({name: "xyz", age: 26});
console.log(user);
}
console.log("Hi")
字符串
这是我在User.js上的代码
const mongoose = require("mongoose")
const userSchema = new mongoose.Schema({
name: String,
age: Number
})
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个小时里一直在为这件事挠头,但没有帮助。
1条答案
按热度按时间tpxzln5u1#
无论出于何种原因,您都没有连接到数据库。
Mongoose让您可以立即开始使用模型,而无需等待mongoose建立与MongoDB的连接。Mongoose在默认情况下不会抛出任何错误,如果你使用一个没有连接的模型。
您需要捕获错误以了解连接发生了什么。使用此代码查看您的问题。
字符串
通常情况下,您的连接字符串存在问题,Internet连接速度缓慢或身份验证凭据错误。通过查看连接字符串,我可以想象问题的根源是连接字符串。您很可能需要指定端口(默认为27017)。试试这个:
型