Я пытаюсь сделать метод GET внутри Nodejs. После выполнения GET я хочу использовать функцию MAP и собирать все имена в виде массива.не может прочитать карту undefined
Но я получаю следующее сообщение об ошибке,
/root/server.js:21
var op = body.products.map(function(item) {
^
TypeError: Cannot read property 'map' of undefined
at IncomingMessage.<anonymous> (/root/server.js:21:27)
at emitNone (events.js:85:20)
at IncomingMessage.emit (events.js:179:7)
at endReadableNT (_stream_readable.js:913:12)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9)
КОД,
var http = require('http');
console.log("hi")
var options = {
host: 'api.usergrid.com',
path: '/siddharth1/sandbox/restaurants'
};
var req = http.get(options, function(res) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
// Buffer the body entirely for processing as a whole.
var bodyChunks = [];
res.on('data', function(chunk) {
// You can process streamed parts here...
bodyChunks.push(chunk);
}).on('end', function() {
var body = Buffer.concat(bodyChunks);
console.log('BODY: ' + body);
// ...and/or process the entire body here.
var op = input.entities.map(function(item) {
return item.name;
});
console.log(op);
})
});
req.on('error', function(e) {
console.log('ERROR: ' + e.message);
});
console.log('Server listening on port 80');
Я не знаю, где я неправильно, потому что в консоли можно увидеть тело, имеющее данные JSon ,
Kidnly помогите мне.
Ну, ['Buffer.concat'] (https://nodejs.org/api/buffer.html#buffer_class_method_buffer_concat_list_totallength) возвращает новый экземпляр' Buffer', а 'Buffer' не имеют свойства 'products' , Предположительно вам нужно сначала преобразовать буфер в строку и использовать 'JSON.parse' для преобразования сериализованных данных в фактическое значение JavaScript. * «потому что в консоли я вижу тело, имеющее данные json». * Правильно, JSON нужно сначала проанализировать **. См. Http://stackoverflow.com/q/45015/218196. –
что такое вывод console.log ('BODY:' + body); ? –
Извините, ребята, я обновляю вопрос о функциях карты, нужно изменить название «products». Для публикации здесь я изменил свой GET-URL. –