小编Ibr*_*bra的帖子

猫鼬模式中的“转换”如何工作?

我的用户模型图片:在此输入图像描述 在我的用户模型中,我将此作为我的用户模型的第二个参数,删除__v并替换_idid

  {
    toJSON: {
      transform: function (doc, ret) {
        ret.id = ret._id;
        delete ret._id;
        delete ret.password;
        delete ret.__v;
      },
    },
  }
Run Code Online (Sandbox Code Playgroud)

在我的登录路由器中,我有这样的内容:

const existingUser = await User.findOne({email});
console.log("existingUser*", existingUser)
res.status(200).send(existingUser);
Run Code Online (Sandbox Code Playgroud)

我从我的 console.log 得到这个

 {
  _id: 5fe81e29fdd22a00546b05e3,
  email: 'chs@hotmail.fr',
  password: '0636b425ef0add0056ec85a5596eacf9ff0c71f8c2a1d4bad068a8679398e11870df12262722b911502eacb5fca23cef0cdd3b740481102ead50c58756d14a34.3f82d856ad93bc99',
  __v: 0
}
Run Code Online (Sandbox Code Playgroud)

但在邮递员中我收到了这个:

{
    "email": "chs@hotmail.fr",
    "id": "5fe81e29fdd22a00546b05e3"
}
Run Code Online (Sandbox Code Playgroud)

我知道通过转换,“如果设置了,猫鼬将调用此函数以允许您转换返回的对象”。
但是有人可以向我解释一下何时发生“转换”以证明 console.log 和我在 postman 中收到的数据之间的差异是合理的吗?
这与异步有关系吗?

javascript mongoose mongodb node.js

5
推荐指数
1
解决办法
7826
查看次数

标签 统计

javascript ×1

mongodb ×1

mongoose ×1

node.js ×1