繁体   English   中英

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

[英]Node.js require class with constructor parameter

我上课了

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;

app.js:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM