使用Router使用Express庆祝Joi验证

时间:2017-12-07 20:42:08

标签: node.js express joi

documentation显示如何在应用的主文件中使用celeb。我的路由已经由快速路由器处理,它与索引文件分开,我有我的应用程序的设置。

我想在邮政路线上为请求正文设置验证。文档中的示例显示了如何在主文件中进行设置,这部分让我感到困惑,因为我将路径分隔在不同的文件中,而我使用router.post('/')代替app.post('/')由于使用了Express Router。

我应该把

放在哪里
const { celebrate, Joi, errors } = require('celebrate');

app.use(errors());

到主索引文件或路由文件?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您需要将const { celebrate, Joi} = require('celebrate');放在路线文件的顶部

然后您可以在路线中使用celeb进行验证

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())