2016-01-28 2 views
0

Я создаю приложение small node/express/mongo, которое позволяет пользователям размещать фотографии кошек и комментировать их. У меня две модели: cat и comment. Все работало отлично, пока я не решил связать эти две модели вместе, которые затем вызвал эту ошибку:Ошибка Mongoose/node: Не удается прочитать свойство ObjectId не определено

type: mongoose.Schema.Type.ObjectId, 
          ^
TypeError: Cannot read property 'ObjectId' of undefined 

Ошибки ссылку на модель кошки:

var mongoose = require('mongoose'); 


var catModel = mongoose.Schema({ 
    name: String, 
    image: String, 
    owner: String, 
    description: String, 
    comments: [ 

     { 
      type: mongoose.Schema.Type.ObjectId, 
      ref: "Comment" 

     } 
    ] 
}); 

var Cat = mongoose.model("Cats", catModel); 

module.exports = Cat; 

Вот комментарий модель:

var mongoose = require('mongoose'); 

var commentSchema = mongoose.Schema({ 

    username: String, 
    content: String, 
}); 


Comment = mongoose.model('Comment', commentSchema); 

module.exports = Comment; 

Вот отрывок из app.js:

var express = require('express'); 
var app = express(); 
//more modules 
var Comment = require('./models/comment.js'); 
var Cat = require('./models/cat.js'); 


//home route 

app.get('/cats', function(req,res) { 

    Cat.find({}, function(err, cats) { 
     if (err) { 
      console.log(err); 

     } else { 
      res.render('cats', {cats: cats}); 
     } 
    }) 
}); 

Я использую мангуст 4.3.7. Я исследовал эту проблему и не смог ее решить. Например, я просмотрел сообщение this и переустановил мангуст, но проблема не исчезла.

ответ

1

Проблема заключается в схеме типа комментариев, но это выглядит довольно хорошо, но просто попробуйте:

comments:[{ type: String, ref: 'Comment' }], 

или

comments: [{type: Schema.ObjectId, ref: "Comment"} 
+0

Спасибо, это сработало (: – Frosty619

3

Это опечатка, как нет Собствености Type в Schema. Это должно быть Types вместо:

comments: [{ "type": mongoose.Schema.Types.ObjectId, "ref": "Comment" }] 
Смежные вопросы