اذهب إلى المحتوى
  • 0

ما سبب خطأ MissingSchemaError: Schema hasn't been registered

Abdelrahman Mostafa10

السؤال

عند تشغيل الخادم أحصل على الخطأ التالي:

MissingSchemaError: Schema hasn't been registered for model "Assessment". Use mongoose.model(name, schema)

وذلك هو ملف critique.js:

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const CritiqueSchema = new Schema({
owner: { type: Schema.Types.ObjectId, ref: 'Person' },
title: String,
commentary: String,
evaluation: { type: Number, default: 0 },
created: { type: Date, default: Date.now }
});

module.exports = mongoose.model('Assessment', CritiqueSchema);

merchandise.js

const mongoose = require("mongoose");
const deepPopulate = require("mongoose-deep-populate")(mongoose);
const Schema = mongoose.Schema;
const mongooseAlgolia = require("mongoose-algolia");

const MerchandiseSchema = new Schema({
classification: { type: Schema.Types.ObjectId, ref: "Grouping" },
owner: { type: Schema.Types.ObjectId, ref: "Person" },
assessments: [{ type: Schema.Types.ObjectId, ref: "Assessment" }],
image: String,
title: String,
description: String,
price: Number,
created: { type: Date, default: Date.now }
});

module.exports = mongoose.model("Merchandise", MerchandiseSchema);

config.js

module.exports = {
database: 'mongodb://localhost:27017/dabdatabase',
port: process.env.PORT || 3000,
secret: 'ganesh123'
};

لا أعلم ما المشكلة مع أن الكود صحيح؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

من الواضح أن لديك ملفين،

critique.js وفيه تم تعريف سكيما، ويبدو أنك تريد استخدامها في الملف merchandise.js

ولكني لا أرى استدعاء للملف critique.js من داخل الملف merchandise.js

لذلك ربما تحتاج لإضافة السطر التالي

const Assessment = require('./critique.js')

أرجو التجربة

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...