从 atomicassets (wax.atomichub.io) 获取数据时,使用 discord.js 的 Node.js GET 错误
Posted
技术标签:
【中文标题】从 atomicassets (wax.atomichub.io) 获取数据时,使用 discord.js 的 Node.js GET 错误【英文标题】:Node.js GET error with discord.js when fetching data from atomicassets (wax.atomichub.io) 【发布时间】:2020-12-18 20:54:39 【问题描述】:我正在尝试让一个不和谐的机器人在不和谐中发布一条消息,其中列出了从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()
);
使用 Postman,我也得到 JSON 作为回报,所以我确定错误在我的代码中。
我也尝试过使用 AtomicAssets 的npm package,但无济于事。
非常感谢您的帮助!
【问题讨论】:
【参考方案1】:我建议使用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));
【讨论】:
【参考方案2】: 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" 吗? (如果它没有解决问题,请告诉我,所以我删除这个^^')
【讨论】:
好的,谢谢,我会试试,如果它有效,请告诉你 不,恐怕这没有成功@87message.author.username7以上是关于从 atomicassets (wax.atomichub.io) 获取数据时,使用 discord.js 的 Node.js GET 错误的主要内容,如果未能解决你的问题,请参考以下文章