【发布时间】:2020-09-05 06:24:46
【问题描述】:
我初始化硬币,然后在 if 语句中给它一个值:
const https = require('https');
var coin = ''
var options = {
"method": "GET",
"hostname": "rest.coinapi.io",
"path": "/v1/exchangerate/" + coin,
"headers": {'X-CoinAPI-Key': 'secretkey'}
};
client.on('message', msg => {
if (msg.content === 'money') {
msg.reply('nice');
}
if (msg.content === 'BTC/USD') {
coin = msg.content;
var request = https.request(options, function (response) {
response.on('data', d => {
var json = JSON.parse(d.toString())
var value = JSON.stringify((json.rate).toPrecision(7))
value = value.replace(/\"/g, "")
msg.reply(coin + ": $" + value);
});
});
request.end();
}
服务器连接正常,因为如果msg.content === 'money',它会正确回复nice。如果msg.content === 'BTC/USD',则不回复。
在生成https.request 之前,它似乎没有改变coin 的值。
感谢您的帮助,谢谢。
【问题讨论】:
-
path上的path值不会因 coin 变量的更改而实时更新。一旦计算出字符串,它们就不再以任何方式联系在一起。 -
您必须先
options.path = 'your lead in string' + coin;才能提出更新请求。 -
response.on('data')也不会返回完整的数据,它会返回您必须累积然后连接到response.on('end')的数据块。请参阅:stackoverflow.com/q/15714499/9867451 了解更多信息 -
options.path = 'your lead in string' + coin;工作,你能把这个回答给我可以批准吗 -
@ibrahimmahrir ,这就是我需要进行所有解析和字符串化的原因吗?
标签: javascript https discord.js