【问题标题】:How to validate an email using Joi如何使用 Joi 验证电子邮件
【发布时间】:2021-01-03 15:42:44
【问题描述】:

我正在关注这个 Node.js 教程,但 .validate 方法给了我一个错误
链接:https://www.youtube.com/watch?v=RLtyhwFtXQA
时间戳:2:07:40

代码:

app.post("/", (req, res) => {
  console.log(req.body);
  const schema = Joi.object().keys({
    email: Joi.string().trim().email().required(),
    pswd: Joi.string().min(5).max(10).required()
  });
  Joi.validate(req.body, schema, (err, result) => {
    if(err) console.log("Error" + err);
    else {
      console.log(result);
      res.send("Successfully Posted Data");
    }
  });
});

错误信息:TypeError: Joi.validate is not a function

该视频是 2 年前发布的,因此 Joi 可能更改了 VS Code 的功能,也没有将 .validate 显示为 Joi 的功能。

【问题讨论】:

    标签: javascript node.js validation joi


    【解决方案1】:

    我相信你想要这样的东西 并假设req.body 中包含emailpswd

    如果您想了解更多信息,可以阅读文档https://joi.dev/api/

    const { value, error } = schema.validate(req.body);
    if(error) console.log("Error" , error);
    else {
          console.log(value);
          res.send("Successfully Posted Data");
    }
    

    【讨论】:

      【解决方案2】:

      不确定您使用的 Joi 版本,但最新的 Joi 通过模式而不是 Joi 进行验证,例如:

      schema.validate(req.body);
      

      【讨论】:

      • 我使用的是最新的 Joi 版本(17.3.0),但我从中获取代码的视频是 2 年前的,所以它不起作用。感谢您的反馈。
      猜你喜欢
      • 2020-01-18
      • 1970-01-01
      • 2016-02-04
      • 1970-01-01
      • 2019-03-08
      • 1970-01-01
      • 2011-08-12
      • 2016-02-29
      相关资源
      最近更新 更多