【发布时间】:2018-04-15 14:23:17
【问题描述】:
我是 Promises 的新手,两天内我已经看到了至少五种方法。
有些方式是旧版本,有些则专注于其他语言,所以我决定问一下今天应该使用什么。
我是这样做的,带有 'err' 和 'doc' 参数:
Proposals.findById({ ...body, user }, (err, doc) =>
Advertisements.findOneAndUpdate(
{_id: body.advertisement}, {$push: {proposals: doc._id}}
)
)
.then((Proposals) => Proposals.view())
.then(success(res, 201))
.catch(next)
还有这个:
Proposals.create({ ...body, user })
.then((Proposals) => {
Advertisements.findOneAndUpdate(
{_id: body.advertisement}, {$push: {proposals: Proposals._id}}
)
.catch(Advertisements)
return Proposals.view()
})
.then(success(res, 201))
.catch(next)
没有“catch”和“return”是行不通的,但我不知道究竟是为什么。 :x
答案 Using Promises in Mongoose Routes 看起来很漂亮,但我无法在上面的代码中重现。
return findUser(userId)
.then((user) => findReceipt(user.bookName))
.then((receipt) => res.status(200).json(receipt))
.catch((err) => res.status(500).json(null))
这些代码是否更正确? 你能帮我修复第二个代码吗?
谢谢。
【问题讨论】:
-
到底是怎么回事?您是否收到任何返回的错误消息或您期望它的行为方式?
标签: javascript node.js mongodb mongoose promise