我发现了这个与Brawl Stars API通信的npm模块,我试图在我的代码中实现它,但它不工作,所以我想尝试文档中的代码,但它也不工作。
我尝试了文档中的这段代码(显然我用一些文本替换了我的API密钥),但我仍然无法让它工作。
const BrawlStarsAPI = require("brawlstars-api-nodejs");
const client = new BrawlStarsAPI(token);
async function main() {
const player = await client.player("#2JU9PRVUV");
console.log(player.name);
}
main();
字符串
错误是:
TypeError:BrawlStarsAPI不是构造函数
1条答案
按热度按时间xkrw2x1b1#
我知道了
console.log(BrawlStarsAPI)
在require
之后产生以下输出:字符串
require
返回一个对象,而不是一个类。要么
型
通过添加对象属性名称来正确检索类API以供使用。虽然这似乎对安装在您机器上的包文件有效,但它是否是最终配置值得怀疑。
为什么
安装的软件包与Github master branch上的文档不匹配(NPM上提供的链接)-可能正在更新以使用
import
而不是require
。报告
如果您选择跟踪主
package.json
文件,则该文件将包含以下条目:型
方法
1.根据文档示例,它不起作用
1.对require的调用没有出错,那么它返回了什么而不是一个类对象呢?
1.控制台记录返回值以检查它。
1.哦,它是一个具有
API
和default.api
属性的对象。1.测试这两个属性中的一个或两个是允许您检索客户端的API。
1.是的,它们是相等的(实际上
.API
和.default.api
是严格相等的)问题
鉴于node中JavaScript模块的
require
返回其默认导出,require
返回的对象可能是一个模块导出。然而,在GitHub上检查package.json
并没有显示任何.mjs
文件,也没有显示其他模块化脚本使用的迹象(对我来说)。结论
文档与包文件不一致。也许作者此时正在更新主分支,还没有更新文档。我只是不知道,但在查看包文件时确实看到了issues链接。
型
可能是一个长期的解决方案,如果包代码是正确的工作,唯一的问题是,文档尚未更新。