node.js - Actor 错误: Cast to ObjectId failed for value "login" at path \"_id\" for model "users"

标签 node.js mongoose mongoose-schema

我有一个名为 users 的模型,并且有一个用于身份验证的登录 API。 API 工作正常,但现在当我向登录 API 发出请求时,出现此错误

{
    "message": "Cast to ObjectId failed for value \"login\" at path \"_id\" for model \"users\"",
    "name": "CastError",
    "stringValue": "\"login\"",
    "kind": "ObjectId",
    "value": "login",
    "path": "_id"
}

我已经在我的 postman 和我的应用程序中尝试过。我遇到同样的问题。

我尝试的步骤:

  1. 我删除了登录 API 中的所有代码,并控制台记录了 req.body。即使这样,我也遇到了同样的问题。
  2. 我清除了数据库中的所有数据并从头开始,甚至遇到了同样的问题。

  3. 我还删除了登录 API 并向其发出了请求。理想情况下,它应该返回“无法发布”,但我遇到了同样的问题。

Mongoose 版本:5.1.4

最佳答案

当您传递的参数根本无法转换为 Mongoose ObjectID 时,就会发生此转换类型错误。因此,从您在这里提供的小内容来看,值“login”似乎以某种方式到达 Mongoose 模型,并且它尝试将其转换为 Mongo 对象 ID,这显然应该失败。

发布代码以进一步调查错误

关于node.js - Actor 错误: Cast to ObjectId failed for value "login" at path \"_id\" for model "users",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53952986/

相关文章:

javascript - 用于本地 NodeJS 开发的 Docker

javascript - EJS:如何在 EJS 文件中从 mongoose 渲染两个或多个填充的集合

javascript - Mongoose动态mongodb集合名称

javascript - 通用功能?

node.js - 通过套接字向 Bitfinex 发出请求的限制是多少?

node.js - 如何将 header 添加到 node-http-proxy 响应

mongodb - 使用Mongoose在Docker环境中连接到MongoCryptD实例

node.js - 具有一对多关系的 Mongoose 文档引用

MongoDB - 按字段值分组文档

javascript - Express 和 Mongoose - 无法更新对象