使用 Router 通过 Express 庆祝 Joi 验证
Celebrate Joi validation with Express using Router
documentation 展示了如何在应用程序的主文件中使用 celebrate。我的路由已经由 express Router 处理,并且它与我设置应用程序的索引文件分开。
我想在 post 路由上为请求正文设置验证。文档中的示例显示了如何在主文件中进行设置,这部分让我感到困惑,因为我将路由分隔在不同的文件中并且我使用 router.post('/')
而不是 app.post('/')
由于Express Router 的使用。
我应该放在哪里
const { celebrate, Joi, errors } = require('celebrate');
和
app.use(errors());
到主索引文件还是我的路由文件?
感谢您的帮助。
您需要将 const { celebrate, Joi} = require('celebrate');
放在路由文件的顶部
然后你可以在你的路由中使用 celebrate 来验证
router.post('/', celebrate({
body: Joi.object().keys({
name: Joi.string().required(),
age: Joi.number().integer(),
role: Joi.string().default('admin')
})
}), (req, res) => {});
在您的索引文件中添加到索引文件的顶部
const { errors } = require('celebrate');
然后在最后
app.use(errors())
documentation 展示了如何在应用程序的主文件中使用 celebrate。我的路由已经由 express Router 处理,并且它与我设置应用程序的索引文件分开。
我想在 post 路由上为请求正文设置验证。文档中的示例显示了如何在主文件中进行设置,这部分让我感到困惑,因为我将路由分隔在不同的文件中并且我使用 router.post('/')
而不是 app.post('/')
由于Express Router 的使用。
我应该放在哪里
const { celebrate, Joi, errors } = require('celebrate');
和
app.use(errors());
到主索引文件还是我的路由文件?
感谢您的帮助。
您需要将 const { celebrate, Joi} = require('celebrate');
放在路由文件的顶部
然后你可以在你的路由中使用 celebrate 来验证
router.post('/', celebrate({
body: Joi.object().keys({
name: Joi.string().required(),
age: Joi.number().integer(),
role: Joi.string().default('admin')
})
}), (req, res) => {});
在您的索引文件中添加到索引文件的顶部
const { errors } = require('celebrate');
然后在最后
app.use(errors())