77 votes

Comment require () dans node.js fonctionne-t-il?

J'ai essayé ceci:

 // mod.js
var a = 1;
this.b = 2;
exports.c = 3;

// test.js
var mod = require('./mod.js');
console.log(mod.a);    // undefined
console.log(mod.b);    // 2
console.log(mod.c);    // 3, so this === exports?
 

Donc, l'image que require () peut être implémentée comme ceci:

 var require = function (file) {
    var exports = {};
    var run = function (file) {
        // include "file" here and run
    };
    run.apply(exports, [file]);
    return exports;
}
 

Est-ce correct? Aidez-moi s'il vous plaît à comprendre require (), ou où puis-je trouver le code source. Merci!

57voto

Andrey Sidorov Points 9287

Le code Source est ici. exports/require ne sont pas des mots-clés, mais des variables globales. Votre script principal est enveloppé avant de commencer dans une fonction qui a toutes les variables globales comme require, process etc dans son contexte.

-10voto

mpm Points 10669

Le source est disponible ici à côté des téléchargements: http://nodejs.org/ exports / require sont des mots-clés, je ne pense pas qu'ils soient codés en javascript directement. Le nœud est codé en C ++, javascript est juste un shell de script autour du noyau C ++.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X