Node.js exiger de la classe avec le paramètre de constructeur
J'ai une classe
class advertHandler {
constructor(projects) {
this.projects = projects;
}
getProject(name) {
return this.projects[name];
}
}
module.exports = new advertHandler(projects);
Quand j'essaie de l'utiliser comme ceci
const advertHandler = require('./advertHandler')(projectsArray);
advertHandler.getProject('test');
Et elle lève une exception, require is not a function
, mais sans un constructeur, tout va bien, donc la question est de savoir comment utiliser le constructeur de la classe avec besoin?
- Cochez cette réponse stackoverflow.com/questions/30689817/...
Vous devez vous connecter pour publier un commentaire.
Il ne dit pas
require
n'est pas une fonction, c'est à direrequire(...)
n'est pas une fonction. 🙂 Vous êtes en essayant de appel le résultat derequire(...)
, mais que vous souhaitez exporter (une instance deadvertHandler
) n'est pas une fonction. Notez également que dansadvertHandler.js
, vous essayez d'utiliser un mondial appeléprojects
(sur la dernière ligne); idéalement, le mieux pour avoir globales dans NodeJS les applications lorsque vous ne pouvez l'éviter.Vous voulez juste pour l'exportation de la classe:
...et puis probablement besoin d'elle avant de l'appeler:
E. g.:
advertHandler.js:
app.js:
const advertHandler = new require('./advertHandler')({test: "one"});
const handler = new (require('./advertHandler'))({test: "one"});
(note de l'()
autour de larequire
appel).