【问题标题】:JSON data with node.js带有 node.js 的 JSON 数据
【发布时间】:2016-09-03 03:27:15
【问题描述】:

我是 node js 编程的新手,我已经开始开发 RESTful API。现在,当我使用 curl 从终端发布数据时,如下所示:

curl -H "Content-Type: application/json" -X POST -d '{"full_name":"Hristijan ilieski", "email":"email@mail.com", "password":"123" }' http://localhost:3000/api/login

我在请求正文中获得了正确的数据。 但是当我尝试从 hurl.it 或其他服务发布一些 json 时,请求正文为空。有什么区别,问题出在哪里?这是我的代码:

function registerUser(req, res){
var jsonData = JSON.parse(JSON.stringify(req.body));
//jsonData['key'] should contain the value...
}

这是来自 hurl.it 请求的图片:

hurl request

编辑

我不知道我做了什么,但是现在当我尝试从 hurl.it 发布请求时,我收到了这个错误:

SyntaxError: Unexpected token f 在解析(/home/hristijan/Documents/UrbanAPI/node_modules/body-parser/lib/types/json.js:83:15) 在/home/hristijan/Documents/UrbanAPI/node_modules/body-parser/lib/read.js:116:18 在 invokeCallback (/home/hristijan/Documents/UrbanAPI/node_modules/body-parser/node_modules/raw-body/index.js:262:16) 完成后(/home/hristijan/Documents/UrbanAPI/node_modules/body-parser/node_modules/raw-body/index.js:251:7) 在 IncomingMessage.onEnd (/home/hristijan/Documents/UrbanAPI/node_modules/body-parser/node_modules/raw-body/index.js:308:7) 在 emitNone (events.js:67:13) 在 IncomingMessage.emit (events.js:166:7) 在 endReadableNT (_stream_readable.js:905:12) 在 nextTickCallbackWith2Args (node.js:441:9) 在 process._tickCallback (node.js:355:17)

【问题讨论】:

  • hurl.it 中是否设置了标头 Content-Type:application/json?这可能是问题
  • 是的,我已经设置了 Content-Type: application/json... 我什至尝试了一些来自 hurl.it 的不同服务,但它不起作用。它仅在我尝试从 curl 发布请求时才有效..
  • 您能否附上您的 hurl.it 请求的打印屏幕,以便我查看是否有任何差异?

标签: javascript json node.js curl http-post


【解决方案1】:

你为什么要对请求体进行字符串解析然后 JSON.parsing ?这会让你回到第一方......

此外,您可能需要一些接受标头和 utf-8 编码,具体取决于您的后端的设置方式...(后者曾经回来困扰我。)

可能想试试 Content-type: application/json;字符集=utf-8

【讨论】:

  • 感谢您的通知,我正在测试一些东西并将其更改为 JSON.stringify...
  • 我在上面的答案的帮助下解决了这个问题。无论如何,谢谢。
【解决方案2】:

请尝试使用 hurl.it 正文而不是这样的参数:

全身是:

{
  "full_name":"Pero Perov",
  "email":"pero@mail.com",
  "password":"pero123",
  "mobile_number":"076 543 210",
  "home_address":"Perovaca 16b",
  "work_address":"Merovaca 18c"
}

【讨论】:

    猜你喜欢
    • 2015-08-30
    • 2017-07-07
    • 1970-01-01
    • 2018-12-04
    • 2014-11-02
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    相关资源
    最近更新 更多