访问 Node.js 和 Express POST 请求中的完整请求正文
本文解决了在创建时访问完整请求正文的问题使用 Node.js 和 Express 框架进行 POST 请求。
Express 和 bodyParser
提供的初始代码使用 Express.js 和express.bodyParser() 中间件进行解析请求正文。但是,尝试使用 request.body 访问整个请求正文会导致错误。
Express v4.16 及以后
从 Express v4.16 开始,不再需要express.bodyParser()中间件。相反,开发者可以直接使用内置的JSON中间件express.json()。
通过在代码中添加app.use(express.json()),请求体将被自动解析和访问作为请求处理程序中的 req.body。请记住在客户端请求中设置适当的 Content-Type 标头,例如 Content-Type: application/json。
Raw Request Body
访问原始请求不使用 Express 中间件,开发者可以利用 Node.js 的 req.get('content-type') 和 req.rawBody 方法。
例如:
app.post('/', function(req, res) { if (req.get('content-type') === 'application/json') { // Get the raw JSON body req.rawBody = ''; req.on('data', (chunk) => { req.rawBody += chunk; }); req.on('end', () => { // Do something with req.rawBody }); } });
这样,可以直接访问和操作原始请求正文。
以上是如何访问 Node.js 和 Express POST 请求中的完整请求正文?的详细内容。更多信息请关注PHP中文网其他相关文章!