如何使用 Joi 验证电子邮件

问题描述

我正在关注这个 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 的功能

解决方法

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

import numpy as np
import matplotlib.pyplot as plt

t = np.arange(3000)
a1_fft= np.fft.fft(a1,axis=0)
freq = np.fft.fftfreq(t.shape[-1])
plt.plot(freq,a1_fft)
,

我相信你想要这样的东西 并假设 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");
}