Вывести поток в объект Nodejs - программирование
Подтвердить что ты не робот

Вывести поток в объект Nodejs

Я пытаюсь Получить объект из хранилища Amazon S3 в Node.Js.

И это отлично работает , когда я сохраняю его в файле.

amazon.getObject = function () {

    var options = {
        BucketName : 'mybucket',
        ObjectName : 'path/to/my.json',
        ResponseContentType : 'application/json'
    };

    s3.GetObject(options, function(err, data) {
        var fs = require('fs');
        var fd = fs.openSync('helloaa.json', 'w+');
        fs.writeSync(fd, data.Body, 0, data.Body.length, 0);
        fs.closeSync(fd);
    });

};

В. helloaa.json:

{
    "hello": 1,
    "world": 3
}

Но. Я не хочу записывать данные в файл на моем диске.

Я хочу разобрать этот json для объекта с JSON.parse();

Когда я печатаю объект там, где:

    s3.GetObject(options, function(err, data) {
        console.log(JSON.stringify(data));
    });

В консоли это:

{"StatusCode":200,"Headers":{"x-amz-id-2":"N1gDLPam+fDCLWd9Q2NI62hizH7eXAjg
61oLYOkanLoSlqUlDl6tqasbfdQXZ","x-amz-request-id":"C53957DAF635D3FD","date"
:"Mon, 31 Dec 2012 00:11:48 GMT","last-modified":"Sun, 30 Dec 2012 23:22:57        "etag":"\"8677a54c9b693bb6fc040ede8cc6a\"","accept-ranges":"bytes","co
ntent-type":"application/json","content-length":"176","server":"AmazonS3"},
"Body":{"0":123,"1":10,"2":32,"3":32,"4":32,"5":32,"6":34,"7":105,"8":100,"
9":34,"10":58,"11":32,"12":49,"13":44,"14":10,"15":32,"16":32,"17":32,"18":

Что это?

Как его разобрать?

Это поток?

Можно ли сохранить поток в объект в NodeJs?

4b9b3361

Ответ 1

Вы пробовали data.Body.toString()?

Ответ 2

Мне пришлось разобрать JSON после преобразования в строку:

    var fileContents = data.Body.toString();
    var json = JSON.parse(fileContents);
    console.log(json);