2016-12-18 3 views
6

У меня есть сервер следующим образом:Node.js как читать данные json от запроса?

app.post('/', function(req, res, next) { 
    console.log(req); 
    res.json({ message: 'pppppppppppppssssssssssssss ' }); 
}); 

запрос посылается от клиента, как:

$.ajax({ 
    type: "POST", 
    url: self.serverURI, 
    data: JSON.stringify({ "a": "128", "b": "7" }), 
    dataType: 'json', 
    success: function (result) { 
     console.log(result); 
    }, 
    error: function (xhr, ajaxOptions, thrownError) { 
     console.log(xhr); 
    } 
}); 

до сих пор соединение отлично.

Моя проблема в сервере:

console.log(req); 

, где я хочу, чтобы прочитать данные, которые я послал. Как я могу прочитать { "a": "128", "b": "7" } от req?

ответ

4

Хотя вы не упомянули об этом, ваш код выглядит так, как будто он написан для среды Express. Мой ответ нацелен на это.

Обязательно используйте body-parser для экспресс-доставки. В случае, если ваш проект зависит от некоторого сгенерированного кода шаблона, он, скорее всего, уже включен в ваш основной скрипт сервера. Если нет:

var bodyParser = require('body-parser'); 
app.use(bodyParser.json()); 

Установка с НПМ: npm install body-parser --save

разобранного JSON, то можно получить доступ через req.body:

app.post('/', function(req, res, next) { 
    console.log(req.body); // not a string, but your parsed JSON data 
    console.log(req.body.a); // etc. 
    // ... 
}); 
+0

Спасибо большое, это сработало. Наконец, ufffffff. Было бы здорово, если бы вы могли объяснить, как я могу отправить такой JSon клиенту параметром «res» :) – arslan

+0

'res.json (object)' - правильный путь. Как уже указано в вашем примере кода. – qqilihq

+0

Я читал много уроков. Некоторые используют «res.json (object)», некоторые используют «res.end (что-то)», что довольно сбивает с толку людей, которые этого не знают. – arslan

Смежные вопросы