猫鼬CastError

时间:2018-09-19 03:53:31

标签: node.js mongodb mongoose

我有以下代码,它绝对不执行任何操作,由于某些原因,我的猫鼬错误甚至没有被调用,这是代码:

.post('/testRequest', express.json(), upload.none(), async (req, res) => {
    try {
      res.status(200);
      res.send('test');
    } catch (err) {
      console.error(err.stack);
      res.status(err.code || 400);
      res.send(err.message || err);
    }
  })

这是错误:

message: 'Cast to ObjectId failed for value "test" at path "_id" for model "Requests"',
name: 'CastError',
stringValue: '"test"',
kind: 'ObjectId',
value: 'test',
path: '_id',
reason: undefined,

我尝试了很多事情,但似乎并没有解决

1 个答案:

答案 0 :(得分:1)

您可能在代码上方有一个.post(':id', ...)。因此,对/testRequest的发布请求会匹配'/:id''/testRequest'路由,但只有前一个路由会执行。 ':id'路由将testRequest作为ID读取并抛出CastError。

您可以交换已在here中讨论过的方法的顺序。