【问题标题】:express-validator showing undefined for defined valuesexpress-validator 显示未定义的已定义值
【发布时间】:2021-07-15 10:27:32
【问题描述】:

我正在使用 fetch 向服务器发送数据:

const post = async(data)=>{
console.log(data)
const response = await fetch("/comments", {  
method: "POST",
body:JSON.stringify(data)
});
return response.json();
};

data 是控制台记录的,它是带有键和值的标准对象。它到达服务器,相同的键和值。

我在服务器上运行此快速验证以进行清理:

router.use(express.json());
router.post("/",
      body("email").isEmail().normalizeEmail(),
      body("name").trim().escape(),
      body("msg").not().isEmpty().trim().escape(),
      (req,res,next)=>{
      const errors = validationResult(req);
      console.log(errors);
      if (!errors.isEmpty())  { res.status(422).json({ errors: errors.array() }); return};
      try{
      saveComment(req.body, (err,doc) => {
          err?  next(createError(500, "Couldn't save the document. Try again.")):
          res.json({msg:"saved"});
          });
      } catch(e) {
      next(createError(500, ISE));
      }
      });

我得到的是:

Result {
  formatter: [Function: formatter],
  errors: [
    {
      value: undefined,
      msg: 'Invalid value',
      param: 'email',
      location: 'body'
    },
    {
      value: undefined,
      msg: 'Invalid value',
      param: 'msg',
      location: 'body'
    }
  ]
}
POST /comments 422 17.821 ms - 126

什么是错误?

【问题讨论】:

    标签: forms express validation


    【解决方案1】:

    在 fetch 函数中设置 header

    headers: {"Content-Type":"application/json"}
    

    【讨论】:

      猜你喜欢
      • 2020-02-11
      • 2022-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-19
      • 2018-02-04
      相关资源
      最近更新 更多