我正在尝试学习如何制作一个不和谐的机器人,并从名为Ergast(http://ergast.com/mrd)的API中提取数据。我找到了这个npm(https://github.com/estevE11/f1-stats),它使用NodeJS实现从Ergast API获取F1数据的历史记录。抱歉,我的措词不好,我仍在尝试学习术语。
我按照npm文档中的说明进行安装,并尝试使用该示例从API获取数据。但是,当我在index.js中运行代码时,出现错误“ TypeError:“ x”不是函数”。当我进入node_modules“ f1-stats”文件夹并从main.js运行代码时,我确实得到了正确的结果。
index.js:
const client = new Discord.Client(); //This will be our client
const { prefix, token } = require('./config.json');//const PREFIX = '!';
const f1s = require('f1-stats');
//module.exports.f1s = f1s; //Still causes the TypeError
f1s("2008 drivers", (res) => {
console.log(res);
});
我在index.js中收到的错误消息:
f1s("2008 drivers", (res) => {
^
TypeError: f1s is not a function
at Object.<anonymous> (C:\Users\RyanPC\Documents\DiscordBot\index.js:8:1)
at Module._compile (internal/modules/cjs/loader.js:776:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
node_modules / f1-stats / main.js:
const f1s = require("./f1-stats"); // "./" is used because module is located in the same folder as the Node.js file
f1s("2008 drivers", (res) => {
console.log(res);
});
当我在node_modules / f1-stats / main.js中运行它时:
{ MRData:
{ xmlns: 'http://ergast.com/mrd/1.4',
series: 'f1',
url: 'http://ergast.com/api/f1/2008/drivers.json',
limit: '30',
offset: '0',
total: '22',
DriverTable: { season: '2008', Drivers: [Array] } } }
答案 0 :(得分:2)
由于f1-stats
不会导出任何内容,因此在导入时不会导出。它是空的。您需要导入的正确文件是f1-stats/f1-stats
。
const f1s = require('f1-stats/f1-stats');
答案 1 :(得分:0)
尝试正确导入f1s,由于未正确导入函数而出现错误,换句话说...检查您要导入的内容中正在导出的内容....希望可以解决此问题。