Javascript node.js不会发出json请求的代码

时间:2016-07-05 16:13:56

标签: javascript json node.js get

我正在制作一个需要我做一些JavaScript的小型discord bot。我知道有一些替代方案,但我想因为原因而使用JavaScript。问题是我试图在node.js中对JSON进行get请求,但是如果我将数据(块)放入控制台,它似乎只能工作。如果我尝试连接数据,我只会得到一个空字符串。

这是我的代码:

var https = require('https');
var output;

var options = {
    host: 'e621.net',
    port: 443,
    method: 'GET',
   // json: true,
    path: '/post/index.json?limit=15',
    headers: { 'user-agent': 'DiscordLucario/1.0' }
};

var req = https.request(options, function (res) {
    res.setEncoding('utf8');
    res.on('data', function (chunk) {
        //console.log(chunk);
        output += chunk;
    });
});
req.on('error', function (e) {
    console.log('problem with request: ' + e.message);
});
req.on('end', function () {

    console.log(output);
    GTwebObject = JSON.parse(output);
    GTpictureIndex = getRandomInt(1, GTwebObject.length);
    GTpictureTags = GTwebObject[GTpictureIndex].tags;
    GTpictureURL = GTwebObject[GTpictureIndex].file_url;

});
req.end();

2 个答案:

答案 0 :(得分:1)

我认为chunk是一个缓冲区,因此你需要在连接之前将其转换为字符串。

res.on('data', function (chunk) {
    //console.log(chunk);
    output += chunk.toString();
});

答案 1 :(得分:0)

尝试在concat之前将块数据流转换为String。

var textChunk = chunk.toString('utf8');
output += textChunk