在New Express中,Body-Parser是隐式的,如何在中间件中获取原始请求主体



我想在我的Express应用程序中的一个中间Wares中获取原始请求主体。Stackoverflow上有几篇文章显示了如何执行此操作(例如Node.js-使用Express或Write Express Mifferware获取原始请求主体,以获取Body -Parser之前的原始请求主体),但是:

  • 他们使用Body-Parser,我相信它是与新Express版本一起内置的,因此不确定在这种情况下如何使用它
  • 他们在app.use()中提取原始请求,这意味着所有路线都会提取原始请求,而我只想在一条路线中提取它(更具体地说,是在我的代码深处埋在我的代码中而不是app.js中的独立中间件中,我希望能够通过req元素并在那里提取其原始身体)。

关于最佳方法的任何建议?

假设您在到达此路线之前尚未对身体进行解析(使用Body-Parser或类似的东西),以下将在您的路线文件中工作:

var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');
router.get('/path', bodyParser.raw(options), (req,res){
   //your code
});

bodyparser.raw(选项)将返回一个接受3个参数(req,res,sext)的函数,而原始身体将在req.body

中可用

最新更新