Maison > Questions et réponses > le corps du texte
Ce que je veux réaliser, c'est faire fonctionner la table reply - save
et la table topic
en même temps après user
, puis les remettre ensemble. Je ne sais pas comment utiliser promise.all
pour envelopper. ces deux opérations de mise à jour des requêtes. J'espère que vous pourrez m'aider à les résoudre.
/* 回复 话题 */
router.post('/reply', (req, res, next) => {
let topic_id = req.body.topic_id,
content = req.body.content
let replyEntity = new replyModel({
author: req._id,
topic: topic_id,
content
})
replyEntity.save()
.then((_new_reply) => {
Promise.all([
topicModel.findByIdAndUpdate(topic_id, {
$inc: {replyNum: 1},
last_reply_author: req._id,
last_reply_time: Date.now()
}),
userModel.findByIdAndUpdate(req._id, {
$push: {replies: _new_reply._id}
})
])
.then((res_arr) => {
return res.json({
status: 0
})
})
.catch((err) => {
return res.json({
status: -1
})
})
})
.catch((err) => {
return res.json({
status: -1
})
})
})
迷茫2017-05-02 09:25:25
replyEntity.save()
.then((_new_reply) => {
var topic = function (topic_id,authorId) {
return topicModel.findByIdAndUpdate(topic_id, {
$inc: {replyNum: 1},
last_reply_author: authorId,
last_reply_time: Date.now()
}).exec();
}
var user = function (authorId,replyId) {
return userModel.findByIdAndUpdate(authorId, {
$push: {replies: replyId}
}).exec();
}
return Promise.all([topic(topic_id,req._id), user(req._id,_new_reply._id)])
.then(function (results) {
console.log('===results===',results);
return res.json({
status: 0
})
}).catch((err) => {
return res.json({
status: -1
});
}).catch((err) => {
return res.json({
status: -1
})
})
Je l'ai probablement noté, vous pouvez l'essayer