Node.js从atomiccasets(wax.atomicchub.io)获取数据时出现不协调.js的GET错误



我正试图让一个discord bot在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()
}
});

使用Postman,我也得到了JSON作为回报,所以我确信错误在我的代码中。

我也尝试过使用AtomicAssets的npm包,但没有成功。

非常感谢您的帮助!

我建议使用节点获取模块。用法很简单:

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"?(如果它不能解决问题,请告诉我,所以我删除了这个^^'(

最新更新