sim*_*gor 1 mongoose mongodb reactjs next.js
我正在学习将 Mongoose 与 NextJS 一起使用,但我一直遇到这个错误。我看过类似的问题,但不知道如何解决这个问题。我已经按照教程视频逐步实现 Mongoose,但在视频中并没有出现此问题。另外,我不想这么不准确地说,但这只是“有时”发生。似乎每次我运行服务器时,第一个 POST 请求总是会通过,GET 请求也很好,但当我尝试多个 POST 请求时,就会发生这种情况。重新启动服务器后,它又可以工作了。这是我的代码:
import mongoose from "mongoose"
const connection = {}
async function dbConnect() {
if (connection.isConnected) {
retrun
}
const db = await mongoose.connect(process.env.MONGO_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
})
connection.isConnected = db.connections[0].readyState
console.log(connection.isConnected)
}
export default dbConnect
Run Code Online (Sandbox Code Playgroud)
const mongoose = require("mongoose")
let NoteSchema = new mongoose.Schema({
email: {
type: String,
required: [true, "Please enter your email"]
}
})
module.exports = mongoose.model.Note || mongoose.model("Note", NoteSchema);
Run Code Online (Sandbox Code Playgroud)
import dbConnect from "../../utils/dbConnect"
import Note from "../../models/Note"
dbConnect()
export default async (req, res) => {
const { method } = req
switch(method) {
case "GET":
try {
const notes = await Note.find({})
res.status(200).json({ success: true, data: notes })
} catch (error) {
res.status(400).json({ success: false })
}
break
case "POST":
try {
const note = await Note.create(req.body)
res.status(201).json({ success: true, data: note })
} catch (error) {
res.status(400).json({ success:false })
}
break
default:
res.status(400).json({ success:false })
break
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助。
你应该使用mongoose.models.Note而不是mongoose.model.Note
所以试试:
module.exports = mongoose.models.Note || mongoose.model("Note", NoteSchema);
Run Code Online (Sandbox Code Playgroud)
此方法用于防止编译 Mongoose 后覆盖模型
| 归档时间: |
|
| 查看次数: |
1489 次 |
| 最近记录: |