在Express中访问原始POST数据
我正在尝试在Express中编写一个愚蠢的简单Hello World程序,该程序输出有关当前HTTP请求的一些基本数据。
对于POST请求,我想查看原始POST正文。
const express = require('express');const app = express();
function handleRequest(req, res) {
console.log('\n-- INCOMING REQUEST AT ' + new Date().toISOString());
console.log(req.method + ' ' + req.url);
console.log(req.body);
res.send('Hello World!');
}
app.all('/*', (req, res) => handleRequest(req, res));
app.listen(3000, () => console.log('Example app listening on port 3000!'));
当我关闭来自邮递员的任何类型的POST请求时,req.body
设置为undefined
。为什么是req.body
空的?如何打印原始POST数据?我不需要POST正文的解析版本,只需原始数据即可。
回答:
为了读取发布请求的正文,您需要body-parser。
如果您还需要解析multipart / form-
data,则需要multer。
在npm安装它们之后:
const express = require('express');const multer = require('multer');
const bodyParser = require('body-parser');
const upload = multer();
const app = express();
// create application/json parser
app.use(bodyParser.json());
// create application/x-www-form-urlencoded parser
app.use(bodyParser.urlencoded({ extended: false }));
function handleRequest(req, res) {
console.log('\n-- INCOMING REQUEST AT ' + new Date().toISOString());
console.log(req.method + ' ' + req.url);
console.log(req.body);
res.send('Hello World!');
}
app.post('/*', upload.any(), (req, res) => handleRequest(req, res));
app.all('/*', (req, res) => handleRequest(req, res));
app.listen(3000, () => console.log('Example app listening on port 3000!'));
以上是 在Express中访问原始POST数据 的全部内容, 来源链接: utcz.com/qa/407844.html