快递路由器补丁findoneandupdate不工作

时间:2018-05-28 10:03:23

标签: mongodb express router patch

我有以下api来处理对mongodb的更新:

  router.patch('/update/:id', wrapAsync(async function(req) {
    console.log('id: ', req.params.id);
    console.log('req.body: ', req.body);
    const result = await db.collection('Whisky'.findOneAndUpdate({
      _id: Archetype.to(req.params.id, ObjectId)
    }, {$set: req.body}, {returnOriginal: false}))
    console.log('result: ',result);
    return { result }
  }))

前两个console.log有这个输出:

id:  5b0bd25e8da4efd060c4f566
req.body:  { contractAddress: '0xd69026Bc6703ADbC1F571D6FBf07eF4a8e33fA0a' }

对findoneandupdate的调用似乎没有返回。我正在尝试更新我的mongodb中的contractAddress字段。我没有到达最后一个console.log语句。有没有人知道我做错了什么?该记录存在于数据库中。我也尝试使用JSON.stringify(req.body)调用fineoneandupdate,但这也不起作用。谢谢!

1 个答案:

答案 0 :(得分:0)

您错过了)方法的结束collection

从以下位置更改:

await db.collection('Whisky'.

要:

await db.collection('Whisky').