如何在 API 响应中发送 joi 验证错误

How to send joi validation error in API response

我想发送 joi 验证错误作为响应我该怎么做 这是我的代码,但它不起作用,

文件mainfile.js

const { loginSchema } = require("./helper/validate_schema.js");

var loginUser = async (req, res, next) => {
  const { email, password } = req.body;
  try {
    let result = await loginSchema.validateAsync(req.body);
    console.log(result)
    res.json({Error:result})
  } catch (error) {
    next(error);
  }
};

文件validate_schema.js

const joi = require('joi');

const loginSchema = joi.object({
    email:joi.string().email().required(),
    password:joi.string().min(5).required()
})


module.exports={loginSchema}

您使用架构编写验证函数:

function validate(req) {
  const schema = Joi.object().keys({
    email: joi.string().email().required(),
    password: joi.string().min(5).required(),
  });
  return Joi.validate(req, schema); 
}

然后在 post 路线内:

router.post("/", async (req, res) => {
  const { error } = validate(req.body);
  // check the error object first 
  console.log(error)
  if (error) return res.status(400).send(error.details[0].message);    
  // if not error write your logic
});