[英]Express : Body undefined with post method
我正在尝试使用 express 从发布请求中获取数据。 但是当我使用 Postman 创建请求时,req.body 是空的(console.log 显示'req {}')我尝试了几件事并在 StackOverflow 中阅读了类似的问题,但我无法解决我的问题。
这是我的 Postman 使用表单数据和原始请求的两个屏幕: postman 请求postman 表单对于第二个,我还尝试在添加 application/json 之前使用默认内容类型
谢谢你的帮助 !
// File : router.js
import express from 'express'
const router = express.Router()
// I tried some router.get routes here and it works with no problem...
router.post('/myurl', (req, res) => {
console.log('req', req.body)
})
export default router
// File : app.js
import express from 'express';
import router from './router.js';
const app = express();
const port = 3000;
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.use('/', router)
app.listen(port, () => {
console.log(`App listening at http://localhost:${port}`);
}
);
您需要请求和服务器端代码的三个元素相匹配。
Content-Type
请求 header 必须指定您发送数据的格式 您的第一个屏幕截图显示您正在发布无效的原始数据 JSON。它没有显示您包含Content-Type
请求 header。
您需要使 JSON 有效并确保请求标头中有Content-Type: application/json
。
您的第二个屏幕截图显示您正在发布multipart/form-data
,但您只有解析application/json
和application/x-www-form-urlencoded
数据的中间件。
要么更改您发布的格式,要么添加合适的中间件。
另请注意,各个部分的 Content-Type 是错误的。 example
is not valid JSON ( 100
有效 JSON 但您可能不希望它被这样对待)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.