mongodb - mongoose同时查询,如何用promise.all包装
滿天的星座
滿天的星座 2017-05-02 09:23:25
0
1
561

想实现的是reply - save后,同时操作topic表和user表,然后一起返回,不知怎么用promise.all来包装这2个 查询更新 操作,希望大家能帮我解决下= =

更新:下面是修改好的.

/* 回复 话题 */ 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 }) }) })
滿天的星座
滿天的星座

membalas semua (1)
迷茫
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 }) })

大概写了下,你试试呢

    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!