如何解决从atomicassets获取数据时,discord.js发生Node.js GET错误wax.atomichub.io
我正在尝试让Discord机器人在Discord中发布一条消息,列出从AtomicAssets请求的一些JSON。使用curl
可以正常工作,并且可以返回JSON(curl "http://test.wax.api.atomicassets.io/atomicassets/v1/assets"
)
问题是,当我运行我的漫游器并告诉它获取JSON时,出现以下错误消息:
Error: getaddrinfo ENOTFOUND https://test.wax.api.atomicassets.io/atomicassets
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:67:26) {
errno: -3008,code: 'ENOTFOUND',syscall: 'getaddrinfo',hostname: 'https://test.wax.api.atomicassets.io/atomicassets'
}
为什么它不能与curl
一样?
这是我的bot.js
文件的最小工作示例:
// stores API keys in separate JSON file
const { token } = require('./token.json');
// require the discord.js module
const Discord = require('discord.js');
// create a new Discord client
const bot = new Discord.Client();
// auth
bot.login(token);
bot.on('message',message => {
// fetch AtomicAssets items
else if (message.content === 'assets') {
const http = require('http')
const options = {
hostname: 'http://test.wax.api.atomicassets.io/atomicassets',path: '/v1/assets',method: 'GET'
}
const req = http.request(options,res => {
console.log(`statusCode: ${res.statusCode}`)
req.on('data',d => {
process.stdout.write(d)
return message.reply(d)
})
})
req.on('error',error => {
console.error(error)
})
req.end()
}
});
使用邮差我也得到JSON作为回报,所以我确定错误在我的代码中。
我也曾尝试使用AtomicAssets的npm package,但无济于事。
非常感谢您的帮助!
解决方法
我建议使用node-fetch模块。用法很简单:
const fetch = require('node-fetch');
fetch('http://test.wax.api.atomicassets.io/atomicassets/v1/assets')
.then(res => res.json())
.then(json => console.log(json));
,
const req = https.request(options,res => {
console.log(`statusCode: ${res.statusCode}`)
/* v HERE */
res.on('data',d => {
/* ^ HERE*/
process.stdout.write(d)
return message.reply(d)
})
})
req.on('error',error => {
console.error(error)
})
不是“ req”而不是“ res”吗? (如果没有解决问题,请告诉我,让我删除此^^')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。