【问题标题】:How to use the raw middleware in express如何在 express 中使用原始中间件
【发布时间】:2019-09-15 13:19:29
【问题描述】:

我试过这个sn-p的代码:

//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 不是吗?

程序的控制台输出:

Object {}

卷曲响应:

[object Object]%

【问题讨论】:

    标签: node.js express curl


    【解决方案1】:

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

    index.js

    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
    

    【讨论】:

    • 是的,这就是答案。我必须添加内容类型并将中间件更改为express.text()。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-22
    • 2020-05-28
    • 1970-01-01
    • 2014-10-12
    • 2021-09-03
    • 1970-01-01
    • 2015-01-31
    相关资源
    最近更新 更多