Node.js 使用路由器与Express一起庆祝Joi验证

Node.js 使用路由器与Express一起庆祝Joi验证,node.js,express,joi,Node.js,Express,Joi,显示了如何在应用程序的主文件中使用“庆祝”。我的路由已经由express Router处理,它与我安装应用程序的索引文件分离 我想在post路由上为请求主体设置验证。文档中的示例显示了如何在主文件中进行设置,这一部分让我感到困惑,因为我在另一个文件中分离了路由,并且由于使用Express router,我使用的是router.post('/'),而不是app.post('/') 我应该把它放在哪里 const { celebrate, Joi, errors } = require('celeb

显示了如何在应用程序的主文件中使用“庆祝”。我的路由已经由express Router处理,它与我安装应用程序的索引文件分离

我想在post路由上为请求主体设置验证。文档中的示例显示了如何在主文件中进行设置,这一部分让我感到困惑,因为我在另一个文件中分离了路由,并且由于使用Express router,我使用的是
router.post('/')
,而不是
app.post('/')

我应该把它放在哪里

const { celebrate, Joi, errors } = require('celebrate');

到主索引文件还是到我的路由文件


谢谢你的帮助。

你需要把
const{progreate,Joi}=require('progregate')位于路由文件的顶部

然后,您可以在路线中使用“庆祝”进行验证

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())
app.use(errors())