如何解决Joi的Req.params验证
所以我有一个应用程序,设法使用Joi验证了一些必需的身体数据。
但是,在我的一条路线中,我正在使用req.params,并且此数据现在直接在db中使用,这是一个很大的安全问题。
这是我的http文件中的所说路由:
// WORKS - posts a new subscription into a comp
app.put('/update/:event_id',async (req: any,res: any) => {
const { error } = schemaSub.validate(req.body,{ abortEarly: false })
if (error) {
console.log(error)
res.send('Something went wrong,try again!')
} else {
const subs = await CompetitionModel.findOneAndUpdate(
{ event_id: req.params.event_id },{ $push: { subscriptions: req.body } },)
res.send(subs)
}
})
我在这里要做的是验证参数。
我有一个joi.ts文件以及下面的文件供参考:
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: Joi.array(),date: Joi.date().required(),cost: {
currency: Joi.string().required(),amount: Joi.number().required(),},})
export const schemaSub = Joi.object().keys({
id: Joi.string().required(),event_id: Joi.string().required(),name: Joi.string().required(),surname: Joi.string().required(),})
现在,我在以下链接中尝试了本教程:tuto,但无法将其应用于我的情况。
请记住,我非常初级。
谢谢,
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。