node.js – 在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!'));

当我从Postman发出任何类型的POST请求时,req.body被设置为undefined.为什么req.body是空的?如何打印原始POST数据?我不需要POST主体的解析版本,只需要原始数据.

解决方法

为了阅读帖子请求的正文,你需要 body-parser.
如果您还需要解析multipart / form-data,则需要 multer.

在你安装它们之后:

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(),res));
app.all('/*',() => console.log('Example app listening on port 3000!'));

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...