如何在 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
});
我想发送 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
});