我正在尝试在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.
如果您还需要解析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 举报,一经查实,本站将立刻删除。