我正在制作一个需要我做一些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();
答案 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