عبد النور محمد نشر 9 سبتمبر 2021 أرسل تقرير نشر 9 سبتمبر 2021 هذا هو الموديل الخاص بي 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} عند تشغيل المشروع أحصل على cannot overwrite "mongoose" model once compiled 1 اقتباس
0 Wael Aljamal نشر 9 سبتمبر 2021 أرسل تقرير نشر 9 سبتمبر 2021 وكطريقة مختصرة: كي لايتم تعريف ال Schema مرتين في المشروع حيث أن Next تحاول بناء نسخة عند كل render طبق نفس الفكرة لكل module تحاول بناءه المثال التالي لموديل user module.exports = mongoose.models.Users || mongoose.model('Users', UsersSchema); وبشكل عام، يوجد عدة احتمالات للخطأ استدعاء هذا الملف في مكانين مختلفين، مايؤدي لظهور خطأ أن هذا module معرف مسبقا. ربما تقوم بتعريف نفس Schema في مكان آخر لنفس Collection استعاء نفس النوذج بمكانين مختلفين بنفس المسار للدالة require require('./models/User') // file1 require('./models/User') // file2 لتجنب حدوثها، يمكننا إعادة المستخدم المعرف مسبقاً إن وُجد بدل إنشاءه: طبق هذه الفكرة على نماذجك.. let User; try { User = mongoose.model("User"); // موجود } catch { User = mongoose.model("User", userSchema); // نقوم بإنشاءه } إن كنت تستخدم serverless يمكنك تنفيذ أمر التشغيل كالتالي: serverless offline --skipCacheInvalidation اقتباس
0 محمد أبو عواد نشر 9 سبتمبر 2021 أرسل تقرير نشر 9 سبتمبر 2021 الخطأ جاء من nextjs عند محاولة إعادة تشكيل النموذج في كل عملية render , عند محاولة حفظ نموذج في nextjs ، يجب كتابته على النحو التالي: const modelName = mongoose.models.modelName || mongoose.model('modelName', flashcardSetSchema ) اقتباس
السؤال
عبد النور محمد
هذا هو الموديل الخاص بي
عند تشغيل المشروع أحصل على
cannot overwrite "mongoose" model once compiled
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.