Javascript Node.js需要具有构造函数参数的类
我有一节课Javascript Node.js需要具有构造函数参数的类,javascript,node.js,Javascript,Node.js,我有一节课 class advertHandler { constructor(projects) { this.projects = projects; } getProject(name) { return this.projects[name]; } } module.exports = new advertHandler(projects); 当我试着这样使用它的时候 const advertHandler = re
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不是一个函数
,但是没有构造函数,一切都很好,所以问题是如何将类构造函数与require一起使用?它不是说require
不是一个函数,而是说require(…)
不是一个函数。:-)您正试图调用require(…)
的结果,但您正在导出的(一个advertdhandler
的实例)不是函数。还要注意,在advertHandler.js
中,您试图使用一个名为projects
的全局变量(在最后一行);理想情况下,如果可以避免的话,最好在NodeJS应用程序中使用globals
您只想导出该类:
module.exports = advertHandler;
…然后在调用之前可能需要它:
const advertHandler = require('./advertHandler');
const handler = new advertHandler({test: "one"});
console.log(handler.getProject('test'));
例如:
AdverHandler.js:
class advertHandler {
constructor(projects) {
this.projects = projects;
}
getProject(name) {
return this.projects[name];
}
}
module.exports = advertHandler;
app.js:
const advertHandler = require('./advertHandler');
const handler = new advertHandler({test: "one"});
console.log(handler.getProject('test'));
检查此答案是否可以在单行中执行?类似于
constAdvertHandler=newrequire('./advertHandler')({test:“one”})
@A-letubby:是的,但可读性较差:consthandler=new(require('./advertdhandler'))({test:“one”})
(注意require
调用周围的()
)。