2016-05-08 3 views
0

Я новичок в программировании узлов js, и я начал разработку RESTful API. Теперь, когда я отправляю данные из терминала с завитком, как это:Данные JSON с node.js

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

Я получаю правильные данные в теле запроса. Но когда я пытаюсь опубликовать некоторый json из hurl.it или какой-либо другой службы, тело запроса пуст. В чем разница и где проблема? Вот мой код:

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

Вот изображение из запроса hurl.it:

hurl request

EDIT

Я не знаю, что я сделал, но теперь, когда я пытаюсь выполнить POST запрос от hurl.it, я получаю эту ошибку:

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

+0

ли вы установить содержание заголовка -Type: application/json в hurl.it? это может быть проблемой –

+0

Да, я установил Content-Type: application/json ... Я даже пробовал с некоторыми различными сервисами от hurl.it, но это не работает. Он работает только тогда, когда я пытаюсь выполнить POST запрос из curl. –

+0

Можете ли вы подключить экран печати вашего запроса hurl.it, чтобы я мог видеть, есть ли какие-либо отличия? –

ответ

2

Пожалуйста, попробуйте использовать в hurl.it тело вместо параметров, как это:

enter image description here

Все тело:

{ 
    "full_name":"Pero Perov", 
    "email":"[email protected]", 
    "password":"pero123", 
    "mobile_number":"076 543 210", 
    "home_address":"Perovaca 16b", 
    "work_address":"Merovaca 18c" 
} 
+0

Спасибо, это сработало! Я не могу поверить, насколько это было просто. –

0

Почему вы пытаетесь переустановить JSON.parsing тело запроса? Это возвращает вас к квадрату ...

Кроме того, вам могут потребоваться некоторые заголовки и кодировка utf-8, в зависимости от того, как настроен ваш бэкэнд ... (Последний вернулся, чтобы преследовать меня раньше.)

Возможно, вы захотите попробовать Content-type: application/json; кодировка = UTF-8

+0

Спасибо за уведомление, я что-то тестировал и изменил его на JSON.stringify ... –

+0

По-прежнему возникают проблемы или это удалось решить? – napo

+0

Я решаю это с помощью ответа выше этого. Спасибо в любом случае. –