2014-12-24 35 views
0

完整的Node.js初學者在這裏有很強的Django背景,我正在構建一個小平臺來在線聽音樂(MEAN堆棧)。如何在Node.js中使用關係字段播種對象

我用的種子用於測試的困難時期,這裏是我的嘗試至今:

var TrackSchema = new Schema({ 
    title: String, 
    user: { type: Schema.ObjectId, ref: 'User' } 
}); 
Track.find({}) 
    .remove(function() { 
     Track.create({ 
      title: 'Foo', 
      user: User.findOne({ email: '[email protected]' })._id 
     }, { 
      title: 'Bar', 
      user: User.findOne({ email: '[email protected]ŧest.com' })._id 
     }, function() { 
      console.log('Finished populating tracks'); 
     }); 
    }); 

我無法找到一個方法來履帶鏈節給用戶。曲目正確地在api/tracks處提供,但如果我取消註釋爲曲目設置用戶的行,則api/tracks然後返回空列表(不提供錯誤消息)。

+0

你有沒有檢查過你的數據庫中的'user'字段? –

+0

似乎沒有任何東西(findOne不會觸發任何錯誤,也不會導致結果)。就好像我的用戶種子在所有種子處理完畢之前都不保存對象。 –

回答

0

您是否使用mongoose作爲數據庫包裝?如果是這樣,它不支持同步查詢。

您必須在回調函數中返回User,然後在其中使用Track.create方法。

User.findOne({ email: '[email protected]' }, function(error, user) { 
    Track 
     .create({ 
      title: 'Foo', 
      user: user._id 
     }); 
}); 
+0

我可以理解背後的邏輯。但是,我在'error'和'user'中都沒有得到任何東西。用於用戶的種子文件在用於軌道之前正確地需要。 –

+0

仍然無法得到這個工作:(。 –

相關問題