我想在我的Express应用程序的其中一个中间件中获取原始请求正文。 Stackoverflow上有几篇文章显示了如何执行此操作(例如Node.js - get raw request body using Express或Writing express middleware to get raw request body before body-parser),但是:
app.use()
中提取原始请求,这意味着所有路由都将提取原始请求,而我只想在一条路由中提取它(更具体地说,是在代码中深埋的独立中间件中)而不是在app.js
中,我希望能够将req
元素传递到该元素并在其中提取其原始内容。关于最佳方法的任何建议吗?
答案 0 :(得分:0)
假设您在到达此路线之前尚未解析身体(使用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(options)将返回一个接受3个参数(req,res,next)的函数,原始主体将在req.body中可用