Express 无法从 axios put 请求接收正文
Express can't receive body from axios put request
我目前使用的示例快递应用如下所示:
const express = require('express')
const app = express()
const port = 3000
app.post('/post', (req, res) => {
console.log(req)
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
并向 ngrok 中映射的 url 发送 axios post 请求:
const axios = require('axios')
axios.post(`http://21f935bd559b.ngrok.io/post`, {
"assetData": "foo"
}).catch(err => {
console.log(err);
})
并且 post 请求将通过并向我发送一个非常大的输出,但没有正文或 assetData: "foo" 任何地方。我做错了什么?
- 您可能忘记使用 JSON 解析器。
和
- 您没有访问请求正文,而是访问了请求对象本身。
如果您要在服务器处理正文中的 JSON 数据,那么您必须解析它。
然后 req 是一个请求对象,它将包含有关请求的所有内容,您必须像 req.body
一样访问它的主体
const express = require('express')
const app = express()
const port = 3000
// Add this line
app.use(express.json());
app.post('/post', (req, res) => {
console.log(req.body)
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
添加 app.use(express.json());
它将解析传入的请求正文。
我目前使用的示例快递应用如下所示:
const express = require('express')
const app = express()
const port = 3000
app.post('/post', (req, res) => {
console.log(req)
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
并向 ngrok 中映射的 url 发送 axios post 请求:
const axios = require('axios')
axios.post(`http://21f935bd559b.ngrok.io/post`, {
"assetData": "foo"
}).catch(err => {
console.log(err);
})
并且 post 请求将通过并向我发送一个非常大的输出,但没有正文或 assetData: "foo" 任何地方。我做错了什么?
- 您可能忘记使用 JSON 解析器。 和
- 您没有访问请求正文,而是访问了请求对象本身。
如果您要在服务器处理正文中的 JSON 数据,那么您必须解析它。
然后 req 是一个请求对象,它将包含有关请求的所有内容,您必须像 req.body
const express = require('express')
const app = express()
const port = 3000
// Add this line
app.use(express.json());
app.post('/post', (req, res) => {
console.log(req.body)
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
添加 app.use(express.json());
它将解析传入的请求正文。