操作 `todos.insertOne()` 缓冲在 10000 毫秒后超时 --- MongoDB Express 错误

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

这是我正在做的一个简单的待办事项列表,每当我运行它并重新加载页面时,它都会抛出一个错误。代码是:

import mongoose from "mongoose"
import express from "express"
import { Todo } from "./models/Todo.js"

let conn = mongoose.connect("mongodb://localhost:27017/todo")
const app = express()
const port = 3000


app.get('/', (req, res) => {
    const todo = new Todo({ title: "First List", desc: "Description of my First List", isDone: false })
    todo.save()
    res.send('Hello World!')
})

app.listen(port, () => {
    console.log(`Example app listening on port http://localhost:${port}`)
})

错误是:

MongooseError: Operation `todos.insertOne()` buffering timed out after 10000ms

如果有人想查看 TodoSchema :

import mongoose from "mongoose";

const todoSchema = new mongoose.Schema({
    title: String,
    desc: String,
    isDone: Boolean
})

export const Todo = mongoose.model('Todo', todoSchema)

我希望看到的是,每次我根据 todoSchema 重新加载页面时,都会在本地主机的 MongoDB 数据库中插入一个名为 todo 的文件夹。

mongodb express mongoose backend
1个回答
0
投票

有一个常见的混乱根源。

Mongoose 让您可以立即开始使用模型,而无需等待 mongoose 建立与 MongoDB 的连接。 ... 这是因为 mongoose 在内部缓冲模型函数调用。这种缓冲很方便,但也是造成混乱的常见原因。如果您在没有连接的情况下使用模型,Mongoose 默认不会抛出任何错误。

请参考同一事件及其解决方案。

错误:MongooseError:操作

tours.insertOne()
缓冲在超时10000毫秒后超时

谢谢 我们做最好的4你

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