javascript - 快递请求正文返回 null
问题描述
express
POST
我的请求有问题,
const express = require('express')
const app = express()
app.use(express.json())
app.use(express.urlencoded({extended: true}))
app.post('/movie/add', (req, res) => {
console.log(req.body) // {}
//
})
有人可以告诉我,为什么在发送一些数据后,例如:
{
"msg":"Hello"
}
那我req.body
还给我{}
?他应该给我一个我msg
价值的对象,而不是我有一个空数组:/
谢谢你的帮助!
解决方案
如果要使用请求正文,则需要做两件事。
1.in request header include Content-type application/json
2.在代码中使用中间件解析成json。app.use(express.json());
Note use app.use(express.json()) before route declartion.
默认情况下,正文是未定义的 app.use(express.json()); 帮助您定义数据,而 content-type application/json 允许您传递 json。如果您没有包含 content-type application/json request.body 将返回定义空对象 { }。
推荐阅读
- angular - 反应式表单值为空
- python - 根据其他列上的值对列进行分组以在 pandas 中创建新列
- r - 重新排列 X 轴的顺序会导致误差条在 y 轴上不再匹配
- github-actions - 推送到主服务器时的 Github 操作增量版本
- gitlab - Gitlab CI - 如何获取所有可用环境
- c# - 使用 C# HttpClient 重写 Java HttpURLConnection 方法
- sas - 错误 79-322 需要 a ) / 错误 388-185:需要算术运算符 / 错误 200-322:符号无法识别,将被忽略
- api - 通过 keycloak API 访问 nextcloud
- java - 如何通过 webview 将 angular 12 应用程序加载到 Android 应用程序中?
- azure - Azure 媒体服务 Fairplay V3 DRM 内容密钥策略