微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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!'));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐