Node.js 如何在express中使用原始中间件

Node.js 如何在express中使用原始中间件,node.js,express,curl,Node.js,Express,Curl,我尝试了以下代码片段: //index.js const express = require("express") const app = express() app.post("/", express.raw(), (req, res) => { console.log(req.body) res.write(req.body.toString()) res.send() }) app.listen(4000) curl localhost:4000-X“

我尝试了以下代码片段:

//index.js
const express = require("express")

const app = express()

app.post("/", express.raw(), (req, res) => {
    console.log(req.body)
    res.write(req.body.toString())
    res.send()
})

app.listen(4000)
curl localhost:4000-X“POST”-d“foo”
如果我用curl调用端点,
req.body
中没有数据。我错在哪里?我的意思是
express.raw
中间件在哪里存储数据?在
req.body
中,不是吗

程序的控制台输出:

对象{}
旋度反应:

[对象]%

您可以使用这种替代方法。这具有相同的功能

index.js Curl命令 终点站
是的,这就是答案。我必须添加内容类型,并将中间件更改为
express.text()
。非常感谢。
const express = require("express")

const app = express()
app.use(express.text())
app.post("/", (req, res) => {
    console.log(req.body)
    res.write(req.body.toString())
    res.send()
})

app.listen(4000)
curl localhost:4000 -H "Content-Type:text/plain" -X "POST" -d "foo"
foo