所以我正在尝试验证发布请求中的数据。为此,我想使用joi,但似乎在某个地方我缺少了一些东西
这是我的帖子请求:
app.post('/new-comp', async (req: any, res: any) => {
const validation = schemaComp.validate(req.body)
// need to declare an if/else statement to manage the error
// for now, console.logs the info that data is not valid
const data = await new CompetitionModel(req.body)
console.log(validation)
res.json(data)
})
正如我在评论中所说,我需要做一些if/else语句来管理验证(因为它似乎可以验证数据,但不会停止发布(
然而,我不知道该怎么做,我尝试的所有方法都导致了我的错误
我是这方面的初学者,任何建议都将不胜感激
此外,请在下面找到我的joi文件
export const Joi = require('joi')
export const schemaComp = Joi.object().keys({
event_id: Joi.string().required(),
compName: Joi.string().required(),
place: Joi.string().required(),
time: Joi.string().required(),
subscriptions: [
{
id: Joi.string().required(),
event_id: Joi.string().required(),
name: Joi.string().required(),
surname: Joi.string().required(),
},
],
date: Joi.date().required(),
cost: {
currency: Joi.string().required(),
amount: Joi.number().required(),
},
})
谢谢,
像这样验证,{ abortEarly: false }
为所有验证抛出错误
const { error } = schemaComp.validate(inputObj, { abortEarly: false });
if (error) {
// handle your errors here
}