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'}]
});
請讓我知道如果你需要看別的。所有的幫助表示讚賞。
謝謝!
嗨尤里!感謝您的迴應。這是一個錯字,我修好了。仍然得到相同的結果。仍然是一個很好的發現 –
所以我假設'console.log('response')'沒有得到執行?你確定'bid._id'是被定義的嗎?如果是「未定義」,貓鼬會發生不好的事情。 –
響應從未被控制檯記錄。我可以確認bid._id不是未定義的。我用「console.log(bid._id)」取代了「console.log(req.body.campaign_id)」,並獲得了我想要的值。 –