Mongodb 使用Nextjs编译后无法覆盖mongoose模型

Mongodb 使用Nextjs编译后无法覆盖mongoose模型,mongodb,mongoose,next.js,Mongodb,Mongoose,Next.js,在你结束这个问题之前,我已经阅读了几个论坛,它们和我有相同的问题,但我的问题是完全不同的。即使我不想做任何事情,即使保存模型,它仍然会给我一个错误: cannot overwrite "mongoose" model once compiled 我觉得我的模式有些问题,因为当它更简单时,它工作得很好,但当我试图使它更复杂时,它开始给我这个错误。这是我的猫鼬代码: import mongoose from 'mongoose' const flashcardItemSche

在你结束这个问题之前,我已经阅读了几个论坛,它们和我有相同的问题,但我的问题是完全不同的。即使我不想做任何事情,即使保存模型,它仍然会给我一个错误:

cannot overwrite "mongoose" model once compiled
我觉得我的模式有些问题,因为当它更简单时,它工作得很好,但当我试图使它更复杂时,它开始给我这个错误。这是我的猫鼬代码:

import mongoose from 'mongoose'

const flashcardItemSchema = new mongoose.Schema({
    term: {
        type:String,
        required: true,
        min:1
    },
    description: {
        type:String,
        required:true,
        min:1
    }
});
const FlashcardItem = mongoose.model("flashcardItem", flashcardItemSchema);

const flashcardSetSchema = new mongoose.Schema({
    title: {
        type: String,
        min: 1,
    },
    flashcards:[flashcardItemSchema],
})

const FlashcardSet = mongoose.model('flashcardSet', flashcardSetSchema )

export {FlashcardItem, FlashcardSet}
我在服务器运行时连接到数据库,因此它不会不时断开连接

更新


我意识到我正在使用nextjs内置api,这意味着api目录在页面目录中。我只会在重新编译页面时收到错误。

因此,错误来自于nextjs尝试在每次渲染时重新生成模型。这里有一个答案: 但是我觉得代码太长了,而我的代码只是一行。当试图在nextjs中保存模型时,应该这样写:

const modelName = mongoose.models.modelName || mongoose.model('modelName', flashcardSetSchema )