gpt4 book ai didi

javascript - Node.js 需要带有构造函数参数的类

转载 作者:数据小太阳 更新时间:2023-10-29 04:03:27 25 4
gpt4 key购买 nike

我有课

class advertHandler {
constructor(projects) {
this.projects = projects;
}

getProject(name) {
return this.projects[name];
}
}


module.exports = new advertHandler(projects);

当我尝试这样使用它时

const advertHandler = require('./advertHandler')(projectsArray);
advertHandler.getProject('test');

并且抛出异常,require is not a function,但是没有构造函数,一切都很好,所以问题是如何使用带require的类构造函数?

最佳答案

这并不是说 require 不是一个函数,而是说 require(...) 不是一个函数。 :-) 您正在尝试调用 require(...) 的结果,但是您正在导出的内容(advertHandler 的一个实例>) 不是函数。另请注意,在 advertHandler.js 中,您尝试使用名为 projects 的全局变量(在最后一行);理想情况下,如果可以避免,最好不要在 NodeJS 应用程序中使用全局变量。

你只想导出类:

module.exports = advertHandler;

...然后可能在调用它之前需要它:

const advertHandler = require('./advertHandler');
const handler = new advertHandler({test: "one"});
console.log(handler.getProject('test'));

例如:

advertHandler.js:

class advertHandler {
constructor(projects) {
this.projects = projects;
}

getProject(name) {
return this.projects[name];
}
}

module.exports = advertHandler;

应用程序.js:

const advertHandler = require('./advertHandler');
const handler = new advertHandler({test: "one"});
console.log(handler.getProject('test'));

关于javascript - Node.js 需要带有构造函数参数的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42553700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com