0
の参照を越えたときにモデルに登録されていないと私はこれをやろうとしている:MissingSchemaError:スキーマは、私はマングースを使用してい
var mongoose = require('../../db/mongodb.connector'),
Schema = mongoose.Schema;
require('./offer.model');
var Offer = mongoose.model('Offer');
var userSchema = new Schema({
name: { type: String },
myOffers: [{type: Schema.Types.ObjectId,ref: 'Offer'}],
});
module.exports = mongoose.model('User', userSchema);
プランをご
user.model.js .model.js
var mongoose = require('../../db/mongodb.connector'),
Schema = mongoose.Schema;
require('./user.model');
var User = mongoose.model('User');
var commentSchema = new Schema({
user: {type: Schema.Types.ObjectId,ref: 'User'},
comment: {type: String},
likes: {type: Number}
});
var offerSchema = new Schema({
name: {type: String},
comments: [commentSchema],
likes: {type:Number}
});
module.exports = mongoose.model('Offer', offerSchema);
私はそれを返すサーバーを実行したときに私の問題がある:
D:\WebStorm\Alertame-Backend\node_modules\mongoose\lib\index.js:362
throw new mongoose.Error.MissingSchemaError(name);
^
MissingSchemaError: Schema hasn't been registered for model "User".
Use mongoose.model(name, schema)
at Mongoose.model (D:\WebStorm\myproject\node_modules\mongoose\lib\index.js:362:13)
at Object.<anonymous> (D:\WebStorm\myproject\db\models\offer.model.js:9:21)
.......
私はoffer.modelサーバーにinportsを削除した場合の説明をEDIT
require('./user.model');
var User = mongoose.model('User');
正常に起動します。 オファーは、個々のエンティティであり、それは既存のユーザーに割り当てたりないことになります(ユーザーは、割り当てられた提供照会の配列を持っています)。一方、オファーには、既存のユーザーからの批判的なコメントがあります。
私は間違っていると思いますか?
これを行う正しい方法はありますか?オファーには、各コメントに参照ユーザーがあるコメントの配列があります。そしてユーザは、そのオファーの配列を持っています...:p – Hanzo
なぜ 'comments'のために別のスキーマを定義したときに' offer'を 'user'スキーマの一部として作ったのですか?これはデザイン上の問題のようです。 –
オファーは個々のエンティティであり、既存のユーザーに割り当てられるかどうかは異なります(ユーザーは割り当てられたオファーの一覧が配列されています)。一方、オファーには、既存のユーザーからの批判的なコメントがあります。これが私の問題を説明してくれることを願っています – Hanzo