No.js exigem a classe com o parâmetro do construtor
Tenho uma aula.
class advertHandler {
constructor(projects) {
this.projects = projects;
}
getProject(name) {
return this.projects[name];
}
}
module.exports = new advertHandler(projects);
Quando tento usá - lo assim
const advertHandler = require('./advertHandler')(projectsArray);
advertHandler.getProject('test');
E abre uma excepção, mas sem construtor está tudo bem, por isso a questão é como usar o construtor de classes com require?
5
Author: MyMomSaysIamSpecial, 2017-03-02
1 answers
Não está a dizer que
require
não é uma função, está a dizer require(...)
não é uma função. :- ) Você está tentando chamar {[13] } o resultado de require(...)
, mas o que você está exportando (uma instância de advertHandler
) não é uma função. Note também que em advertHandler.js
, Você está tentando usar um global chamado projects
(na última linha); idealmente, é melhor ter globais em aplicativos NodeJS quando você pode evitá-lo.
Você só quer exportar a classe:
module.exports = advertHandler;
...e, provavelmente, exigi-lo antes de ligar. it:
const advertHandler = require('./advertHandler');
const handler = new advertHandler({test: "one"});
console.log(handler.getProject('test'));
Por exemplo:
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'));
11
Author: T.J. Crowder, 2017-03-02 11:13:51