我试图制造一些不和谐的机器人,而试图使用在另一个脚本中创建的类却感到沮丧。有问题的脚本如下所示:
// utils.js
class BotUtils {
constructor(param1, param2, ...) {
this.param1 = param1;
this.param2 = param2;
...
}
someMethod() {
doSomething;
}
}
module.exports = {BotUtils};
在我的机器人脚本中,我有:
// bot.js
const botUtils = require('./BotUtils');
let utils = new BotUtils(param1, param2, ...);
我得到
TypeError: BotUtils is not a constructor
我也尝试过使用
new
,但是它不起作用。我需要使用特定的参数来构造类。正确的方法是什么? 最佳答案
您正在从模块中导出具有类BotUtils
的对象作为属性。要创建该类的实例,您需要引用该属性,即
let utils = new botUtils.BotUtils(param1, param2, ...);
如果只想导出
BotUtils
类,则可以通过删除方括号来实现module.exports = BotUtils;
然后,当您需要模块时,将返回该类,这与您的原始代码更接近,但稍有调整
const BotUtils = require('./utils');
另外,如果您使用的是ES modules,则使用命名导出会更容易
import { BotUtils } from './utils'