2017-05-02 8 views
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'); 

正常に起動します。 オファーは、個々のエンティティであり、それは既存のユーザーに割り当てたりないことになります(ユーザーは、割り当てられた提供照会の配列を持っています)。一方、オファーには、既存のユーザーからの批判的なコメントがあります。

私は間違っていると思いますか?

答えて

0

offer.modeluser.modeluser.modelからoffer.modelに変更しようとしています。各ファイルは自身をインクルードしようとします。

これは、undefinedというスキーマのエラーが発生する理由です。

+0

これを行う正しい方法はありますか?オファーには、各コメントに参照ユーザーがあるコメントの配列があります。そしてユーザは、そのオファーの配列を持っています...:p – Hanzo

+0

なぜ 'comments'のために別のスキーマを定義したときに' offer'を 'user'スキーマの一部として作ったのですか?これはデザイン上の問題のようです。 –

+0

オファーは個々のエンティティであり、既存のユーザーに割り当てられるかどうかは異なります(ユーザーは割り当てられたオファーの一覧が配列されています)。一方、オファーには、既存のユーザーからの批判的なコメントがあります。これが私の問題を説明してくれることを願っています – Hanzo

関連する問題