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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了联系人验证失败:姓名:路径 "name "处的值 "sara smith "转为ObjectId失败。相关的知识,希望对你有一定的参考价值。

谁能帮我解决这个问题。我不知道什么是真正的问题与我的 req.user.id. 其实我是新来的mongoose。

这是我的 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');
    
  
);
答案

可能在你的contact schema中,你使用了

name: 
  type: mongoose.Schema.Types.ObjectId

你要把它改成

name: 
  type: String

因为 "sara smith"String,不 ObjectId. 这就是为什么你的验证失败

以上是关于联系人验证失败:姓名:路径 "name "处的值 "sara smith "转为ObjectId失败。的主要内容,如果未能解决你的问题,请参考以下文章

验证失败:video_data.0._id:在路径 \"_ 处的值 \"\"(类型字符串)转换为 ObjectId 失败

“用户验证失败:密码:需要路径‘密码’。” [关闭]

错误:升级失败:错误验证“”:错误验证数据:ValidationError(Ingress.spec.rules[0].http):缺少必填字段“路径”

java登陆界面实验报告

MongooseError [CastError]:模型“List”的路径“_id”的值“ name:'C'”转换为 ObjectId 失败

错误:架构验证失败并出现以下错误:数据路径“”不应具有其他属性(项目)