Я играю с MEAN.JS, чтобы посмотреть, как мне это нравится, и у меня возникла ошибка, которую я обычно могу решить, но на этот раз я не могу понять, что я делаю неправильно.
Я пытаюсь заполнить дочерний объект с помощью метода заполнения мангустов, но теперь я получаю эту ошибку: MissingSchemaError: Schema hasn't been registered for model "topic"
Это имеет смысл ... гарантирует, что схема модели «тема» загружена. Я думал, что он должен загружаться в соответствии с порядком загрузки в MEAN.js.
момент.сервер.модель.js
'use strict';
/**
* Module dependencies.
*/
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
/**
* Moment Schema
*/
var MomentSchema = new Schema({
name: {
type: String,
default: '',
required: 'Please fill Moment name',
trim: true
},
content: {
type: String,
default: '',
trim: true
},
created: {
type: Date,
default: Date.now
},
topic: {
type: Schema.ObjectId,
ref: 'Topic'
},
user: {
type: Schema.ObjectId,
ref: 'User'
}
});
mongoose.model('Moment', MomentSchema);
тема.сервер.модель.js
'use strict';
/**
* Module dependencies.
*/
var mongoose = require('mongoose'),
Schema = mongoose.Schema,
moment = require('moment-timezone');
/**
* Topic Schema
*/
var TopicSchema = new Schema({
name: {
type: String,
default: '',
required: 'Please fill Topic name',
trim: true
},
created: {
type: Date,
default: Date.now
},
user: {
type: Schema.ObjectId,
ref: 'User'
},
moments: [
{
type: Schema.ObjectId,
ref: 'Moment'
}
]
});
mongoose.model('Topic', TopicSchema);
Запрос, который вызывает ошибку:
Moment.find().sort('-created').populate('user', 'displayName', 'topic').exec(function(err, moments) { ... }
Что может быть причиной этой ошибки и как ее исправить? Я решал это раньше в других системах узлов, но в среднем я думаю, что мне не хватает чего-то фундаментального.