Mongoose正确承诺拒绝处理

时间:2015-02-24 11:52:01

标签: javascript node.js coffeescript mongoose promise

我在nodeJS

中与promise模式斗争

我在db中寻找用户,然后使用用户引用保存新实体,但是当用户不在db中时,我应该返回拒绝,但我不确定如何正确执行。

有没有办法如何做得更好?

顺便说一句,对不起,coffeescript: - [

User.findOne({'fbId':userData.me.id}).exec().then((doc)->
  if !doc? then return new Promise (resolve,reject)->reject(404)

  video = new Video({
    user:doc
    state: "queue"
    createdAt: new Date()
  })

  video.save().exec()
)

1 个答案:

答案 0 :(得分:4)

您可以在throw回调中使用then来拒绝它们。或者,您也可以使用Promise.reject(404),而不是使用Promise构造函数。

User.findOne
  fbId:userData.me.id 
.exec().then (doc)->
  if !doc? 
    throw new Error 404

  video = new Video
    user: doc
    state: "queue"
    createdAt: new Date
  video.save().exec()