2016-10-18 2 views
0

Я не могу заполнить мой создатель,
все в порядке, но идентификатор не отображаетсяНевозможно заполнить поле создателя в мангуста

var StorySchema = new Schema({ 
    creator: { type: Schema.Types.ObjectId, ref: 'User' }, 
    content: String, 
    created: { type: Date, deafult: Date.now } 
    }) 

module.exports = mongoose.model('Story', StorySchema); 

вот мой второй код

api.route('/') 
    .post(function (req, res) { 
     var story = new Story({ 
      creator: req.decoded.id, 
      content: req.body.content 
     }); 

     story.save(function (er) { 
      if (er) { 
       res.send(er); 
       return; 
      } 
      res.json('User story is created'); 
     }); 

    }) 

    .get(function (req, res) { 
     Story.find({ creator: req.decoded.id}) 
      .populate({ path: 'creator'}).exec(function (er, data) { 
      res.json(data); 
     }); 
    }) 

все отлично, за исключением того, что идентификатор объекта пользователя не отображается

ответ

-1

Попробуйте что-нибудь подобное, чтобы преобразовать строку в действительный объект mongoId

var ObjectID = require('mongodb').ObjectID; 
_id = new ObjectID(_id); 
0

Вы должны преобразовать декодированную строку в соответствующую ObjectID:

const ObjectId = mongoose.Types.ObjectId; 
api.route('/') 
    .post(function (req, res) { 
     var story = new Story({ 
      creator: new ObjectId(req.decoded.id), 
      content: req.body.content 
     }); 

     story.save(function (er) { 
      if (er) { 
       res.send(er); 
       return; 
      } 
      res.json('User story is created'); 
     }); 

    }); 
+0

теперь он не работает даже сейчас я не могу получить новый рассказ –

+0

ошибки, бревенчатое заявление? Что-нибудь? – Paul

+0

no нет ничего, только создатель не показывается при возврате json else показывает без ошибок –

Смежные вопросы