特定中间件上的bodyParser.json

时间:2018-11-01 13:14:52

标签: node.js express body-parser

基本上,我需要对请求进行bodyParse解析才能使用express-recaptcha,因此需要在该中间件中对它进行bodyParse解析,但对于整个请求而言,并不是这样。

这是我要启用bodyParser的中间件(recaptcha.verify希望它是json解析器):

const recaptchaMiddleware = function(req, res, next) {
  return recaptcha.verify(req, function(error, data) {
    logger.log({
      level: 'debug',
      message: 'Verifying recaptcha token',
    })
    if (error) {
      logger.log({
        level: 'error',
        message: `Error verifying recaptcha token for request`,
        body: error,
      })
      return res.status(403).send()
    }
    next()
  })
}

这是我的路线:

  .use(
    '/api/v1/mandrill',
    recaptchaMiddleware,
    function (req, res, next) {
      logger.log({
        level: 'debug',
        message: 'Debugme',
        body: JSON.stringify(req.body),
      })
      next()
    },
    createProxy(EMAIL_API, { onProxyRes: metricsMiddleware('emailservice', []) })
  )

下面我可以将服务悬停在代理服务器上,以使其不满意。...

    const jsonParser = bodyParser.json({ limit: '10mb' })

  .use(
    '/api/v1/mandrill',
    jsonParser,
    recaptchaMiddleware,
    function (req, res, next) {
      logger.log({
        level: 'debug',
        message: 'Debugme',
        body: JSON.stringify(req.body),
      })
      next()
    },
    createProxy(EMAIL_API, { onProxyRes: metricsMiddleware('emailservice', []) })
  )

摘要: 我需要对recaptcha.verify(req,function(error,data)而不是整个路由都使用bodyParser.json()

0 个答案:

没有答案