Amazon kinesis 如何在Javascript SDK中解码来自kinesis.getRecords的数据?

Amazon kinesis 如何在Javascript SDK中解码来自kinesis.getRecords的数据?,amazon-kinesis,aws-sdk-js,Amazon Kinesis,Aws Sdk Js,我正在尝试从Kinesis数据流获取数据: function getRecord(shard_iterator) { var getRecParams = { ShardIterator: shard_iterator }; kinesis.getRecords(getRecParams, function(err, result) { // Loop through all the packages f

我正在尝试从Kinesis数据流获取数据:

function getRecord(shard_iterator) {

    var getRecParams = {
        ShardIterator: shard_iterator
    };

    kinesis.getRecords(getRecParams, function(err, result) {
            // Loop through all the packages
            for (var record in result.Records) {
                console.log(JSON.stringify(result.Records[record].Data));
                break; // just to see the first one
            }
            //if (result.NextShardIterator) getRecord(result.NextShardIterator);
    });
}
我看到的结果是:

{"type":"Buffer","data":[123,34,73,110,112,117....,125]}
从AWS CLI中,我知道
数据
应该是base64编码的,但这里有些不同。那么如何从我看到的
数据
数组中获取信息呢


请注意,它不是NodeJS,而是浏览器中的Javascript。

解决方案,最好在doc中使用它:

var decoder = new TextDecoder("utf-8");
function getRecord(shard_iterator) {

    var getRecParams = {
        ShardIterator: shard_iterator
    };

    kinesis.getRecords(getRecParams, function(err, result) {
        if (err) {
            console.log("Error in getRecords() from the Kinesis stream.");
            console.log(err);
        } else {
            try {
                // Loop through all the packages
                for (var record in result.Records) {
                    data = result.Records[record].Data
                    decoded = JSON.parse(decoder.decode(data));
                    console.log(decoded);
                }
            } catch(err) {
                console.log("Error parsing the package.");
                console.log(err);
            }
            if (result.NextShardIterator) getRecord(result.NextShardIterator);
        }
    });
}