javascript - Express - 使用curl 添加 JSON 有效负载导致解析错误

标签 javascript node.js express

代码:

const express = require('express')
const bodyParser = require('body-parser')

app = express()
app.use(bodyParser.json());

app.post('/', function (req, res)
{
    res.send("Ok")
})

app.listen(7000)

作品:

curl -X POST 本地主机:7000/

失败:

Cmd: curl -H "Content-Type: application/json"-d {"day":"Friday"} localhost:7000/

错误:语法错误:JSON 中位置 1 出现意外的标记 d

有什么想法吗?

分辨率:

问题似乎是由于我在 Windows 上执行此操作所致。以下命令有效。

curl -H "Content-Type: application/json" -d {"""day""":"""Friday"""}localhost:7000/

curl -H "Content-Type: application/json" -d {\"day\":\"Friday\"} localhost:7000/

curl -H "Content-Type: application/json" -d "{\"day\":\"Friday\"}" localhost:7000/

最佳答案

cURL 命令与引号混淆(看看它如何认为第一个字符是“d”?)。您需要将 JSON 数据用单引号括起来:

curl -H "Content-Type: application/json" -d '{"day":"Friday"}' localhost:7000/

您还可以转义引号:

curl -H "Content-Type: application/json" -d "{\"day\":\"Friday\"}" localhost:7000/

关于javascript - Express - 使用curl 添加 JSON 有效负载导致解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46009413/

相关文章:

node.js - Socket.io Client.emit 在 if 循环内不起作用

javascript - 尝试访问js文件中的ejs数组

javascript - 找不到 Express.js 路由

javascript - express.js 多文件上传回调

javascript - shopify js 购买 sdk 无法在 WordPress 中运行

javascript - 动态选择单选按钮

javascript - 在 Node 中,如何要求函数仅在获取所需的所有数据后才返回?

javascript - 刷新父页面

javascript - 访问回调函数内的局部变量

json - body-parser读取json post数据node.js express