NodeJS学习笔记(四)

模块

一个js文件就是一个模块

//hello.js

exports.world = function(){
    console.log('Hello World');
}

//main.js

var hello = require('./hello'); //自动帮你寻找到js后缀的hello文件
hello.world(); //输出Hello World

把一个对象封装到一个模块

//hello.js

function Hello(){
    var name;
    this.setName = function(newName){
        name = newname;
    };
    this.sayHello = function(){
        console.log('Hello'+name);
    };

};

module.exports = Hello;

//main.js

var Hello = require('./hello');
hello = new Hello(); //有趣,函数当对象用了,还new对象
hello.setName('jimmy');
hello.sayHello(); //打印 HelloJimmy

require加载逻辑

require执行后,先看是否在文件模块缓存区中,是的话,直接用。如果不是,我们来看是否是原生模块。是原生模块的话,我们检查是否在原生模块缓冲区中,是的话,直接用,不是的话,加载原生模块,再缓存原生模块,然后使用。假如不是原生模块,我们查找文件模块,根据扩展名载入文件模块,并且缓存文件模块,再执行。执行就是exports

 

你可能感兴趣的:(NodeJS学习笔记(四))