J'ai des problèmes, notamment des fichiers à exécuter dans mon projet NodeJs.
J'ai deux fichiers dans le même répertoire:
a.js
var test = "Hello World";
et
b.js
require('./a.js');
console.log(test);
J'exécute b.js avec node b.js
et j'obtiens l'erreur ReferenceError: test is not defined
.
J'ai parcouru la documentation http://nodejs.org/api/modules.html#modules_file_modules
Qu'est-ce que je rate? Merci d'avance.
Modifiez a.js pour exporter la variable:
exports.test = "Hello World";
et affectez la valeur de retour de require('./a.js')
à une variable:
var a = require('./a.js');
console.log(a.test);
Un autre motif que vous verrez souvent et que vous utiliserez probablement est d’affecter quelque chose (un objet, une fonction) à l’objet module.exports
dans a.js , comme suit:
module.exports = { big: "string" };
Vous comprenez mal ce qui devrait se passer. Les variables définies dans votre module ne sont pas partagées. NodeJS les surveille.
Vous devez le renvoyer avec module.exports
.
a.js
module.exports = "Hello World";
b.js
var test = require('./a.js');
console.log(test);
si vous souhaitez exporter la variable dans un autre fichier. Il existe deux modèles . L'un est a.jsglobal.test = "Hello World";
// le test ici est une variable globale, mais il sera pollué
L'autre est
a.js module.exports.test = "Hello World";
ou exports.test = "Hello World"; b.js var test = require('./a.js');
// le test dans b.js peut obtenir le test dans une. journal (test);