2015-08-13 64 views
1

我真的只需要第二組眼睛在這裏。我正在使用Mongoose npm在我的MongoDB中創建一個新條目。然後我在Async npm的幾個函數中使用這個新條目。

是我遇到的問題是,我得到的前三個控制檯日誌,「擊球手」,「創造」和「req.body.campaign_id」,但沒有過去那種。我認爲它與第一個findByIdAndUpdate中的$ push有關。請參閱下面的代碼和架構。

代碼!請參閱異步並行 「活動」 功能

Bid.create(req.body, function(err, bid){ 
     console.log('create') 
     async.parallel({ 
      campaign: function(done) { 
       console.log(req.body.campaign_id) 
       Camapaign.findByIdAndUpdate(req.body.campaign_id, { 
        $push: { bids: bid._id } 
       }, { 
        safe: true, 
        upsert: true 
       }, function(err, campaign){ 
        console.log('camp', 2) 
        if(err) { 
         console.log(err) 
         done(err) 
        } else { 
         done(null, campaign) 
        } 
       }); 
      }, 
      user: function(done) { 
       console.log('user', 1) 
       User.findByIdAndUpdate(req.body.user_id, { 
        $push: {'bids': bid._id } 
       }, { 
        safe: true, 
        upsert: true 
       }, function(err, bid){ 
        console.log('user', 2) 
        if(err) { 
         done(err) 
        } else { 
         done(null, bid) 
        } 
       }); 
      } 
     }, function(err, response){ 
      console.log('response') 
      if(err) { 
       console.log(err) 
      } else { 
       res.status(200).send(response); 
      } 
     }); 
    }) 

運動模式

var campaignSchema = new mongoose.Schema({ 
    title:String, 
    imgUrl:[String], 
    shortDesc: { type: String, set: shortenDesc }, 
    longDesc:String, 
    duration: Number, 
    price: Number, 
    desired_price: Number, 
    bids: [{ type: mongoose.Schema.Types.ObjectId, ref: 'bidSchema' }], 
    owner_id: { type: mongoose.Schema.Types.ObjectId, ref: 'userSchema' } 
}); 

用戶模式

var schema = new mongoose.Schema({ 
    name: String, 
    email: { 
     type: String 
    }, 
    password: { 
     type: String 
    }, 
    salt: { 
     type: String 
    }, 
    twitter: { 
     id: String, 
     username: String, 
     token: String, 
     tokenSecret: String 
    }, 
    facebook: { 
     id: String 
    }, 
    google: { 
     id: String 
    }, 
    campaigns: [campaignSchema], 
    bids: [{type: mongoose.Schema.Types.ObjectId, ref: 'bidSchema'}] 
}); 

請讓我知道如果你需要看別的。所有的幫助表示讚賞。

謝謝!

回答

1

你正在做Camapaign.findByIdAndUpdate你確定Camapaign沒有拼寫錯誤嗎?不應該是Campaign

+0

嗨尤里!感謝您的迴應。這是一個錯字,我修好了。仍然得到相同的結果。仍然是一個很好的發現 –

+0

所以我假設'console.log('response')'沒有得到執行?你確定'bid._id'是被定義的嗎?如果是「未定義」,貓鼬會發生不好的事情。 –

+0

響應從未被控制檯記錄。我可以確認bid._id不是未定義的。我用「console.log(bid._id)」取代了「console.log(req.body.campaign_id)」,並獲得了我想要的值。 –