如何删除TypeError:“ x”不是函数?

时间:2019-08-04 05:51:16

标签: node.js node-modules

我正在尝试学习如何制作一个不和谐的机器人,并从名为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] } } }

2 个答案:

答案 0 :(得分:2)

由于f1-stats不会导出任何内容,因此在导入时不会导出。它是空的。您需要导入的正确文件是f1-stats/f1-stats

const f1s = require('f1-stats/f1-stats');

答案 1 :(得分:0)

尝试正确导入f1s,由于未正确导入函数而出现错误,换句话说...检查您要导入的内容中正在导出的内容....希望可以解决此问题。