NextJS13+Mongoose重建时触发MissingSchemaError问题求助
求助:NextJS 13 + Mongoose 构建后出现 MissingSchemaError 问题
StackOverflow上现有解决方案都无法解决我的问题,因此重新发帖求助。我正在使用NextJS 13的应用路由搭配Mongoose开发,仅在删除.next目录并重新构建项目时,会触发以下错误:
MissingSchemaError: Schema hasn't been registered for model "student". Use mongoose.model(name, schema)
出现该错误后,我必须重新运行Mongoose脚本并重新填充MongoDB,代码才能恢复正常运行。相关代码如下:
student-session-model.js
import mongoose, { Schema } from "mongoose"; const MODEL_NAME = "student-session"; const schema = new Schema( { startTime: { type: Date, required: true, }, endTime: { type: Date, required: true, }, statements: { type: Array, required: true, }, completedScenes: { type: Array, }, email: { type: String, required: true, }, student: { type: Schema.Types.ObjectId, ref: "student", }, }, { timestamps: true } ); export default mongoose.models[MODEL_NAME] || mongoose.model(MODEL_NAME, schema);
student-results.js(路由代码)
我尝试过将studentSessionModel的导入放在dbConnect导入之前,仍会出现相同错误:
import { NextResponse } from "next/server"; import { dbConnect } from "@/app/core/db"; import studentSessionModel from "@/app/core/models/student-session-model"; export async function POST(req) { try { await dbConnect(); const data = await studentSessionModel.find().populate("student"); return NextResponse.json({ data }); } catch (err) { console.log("Student Results route err: ", err); return NextResponse.json({ err }); } }
内容的提问来源于stack exchange,提问作者user3831527
相关产品推荐
相关产品推荐

