联系人验证失败:名称:路径 "name" 处的值 "sara smith" 转换为 ObjectId 失败

contact validation failed: name: Cast to ObjectId failed for value "sara smith" at path "name"

谁能帮我解决这个问题。我不知道我的 req.user.id 到底有什么问题。我实际上是猫鼬的新手。

这是我的 contact.js 文件

router.post(
  '/',
  [auth, [check('name', 'name is required').not().isEmpty()]],
  async (req, res) => {
    const errors = validationResult(req);
    if (!errors.isEmpty()) {
      return res.status(400).json({ errors: errors.array() });
    }

    const { name, email, phone, type } = req.body;

    try {
      const newContact = new Contact({
        name,
        email,
        phone,
        type,
        user: req.user.id,
      });

      console.log("dfdwfwefwe ",req.user.id)

      const contact = await newContact.save();
      res.json(contact);
    } catch (err) {
      console.error(err.message);
      res.status(500).send('Server errors');
    }
  }
);

可能在您使用的联系人架构中

name: {
  type: mongoose.Schema.Types.ObjectId
}

您需要将其更改为

name: {
  type: String
}

因为"sara smith"String,而不是ObjectId。这就是您的验证失败的原因