Como requer () no node.js funciona?

Tentei o seguinte:

// 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?

Então, a imagem que require () pode ser implementada assim:

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

Isso está certo? Por favor, ajude-me a entender o require () ou onde posso encontrar o código fonte. Obrigado

questionAnswers(8)

yourAnswerToTheQuestion