简介及资料

通过Node.js的官方API可以看到Node.js本身提供了很多核心模块 http://nodejs.org/api/ ,这些核心模块被编译成二进制文件,可以require('模块名')去获取;核心模块具有最高的加载优先级(有模块与核心模块同名时会体现)

(本次主要说自定义模块)

 

Node.js还有一类模块为文件模块,可以是JavaScript代码文件(.js作为文件后缀)、也可以是JSON格式文本文件(.json作为文件后缀)、还可以是编辑过的C/C++文件(.node作为文件后缀);

 

文件模块访问方式通过require('/文件名.后缀')    require('./文件名.后缀')    requrie('../文件名.后缀') 去访问,文件后缀可以省略;以"/"开头是以绝对路径去加载,以"./"开头和以"../"开头表示以相对路径加载,而以"./"开头表示同级目录下文件,

前面提到文件后缀可以省略,Nodejs尝试加载的优先级 js文件 > json文件 > node文件

创建一个自定义模块

   以一个计数器为例

Nodejs学习笔记(三)---  模块

var outputVal  = 0;     //输出值
var increment = 1;    //增量

/* 设置输出值 */
function seOutputVal (val) {
    outputVal = val;
}

/* 设置增量 */
function setIncrement(incrementVal){
    increment = incrementVal;
}

/* 输出 */
function printNextCount()
{    
    outputVal += increment;
    console.log(outputVal) ;
}

function printOutputVal() {
    console.log(outputVal);
}
exports.seOutputVal = seOutputVal;
exports.setIncrement = setIncrement;

module.exports.printNextCount = printNextCount;
自定义模块 示例源码

示例中重点在于exports和module.exports;提供了外部访问的接口,下面调用一下看看效果吧

调用自定义模块

 Nodejs学习笔记(三)---  模块

/*
    一个Node.js文件就是一个模块,这个文件可能是Javascript代码、JSON或者编译过的C/C++扩展。
    重要的两个对象:
    require是从外部获取模块
    exports是把模块接口公开    
*/
var counter = require('./1_modules_custom_counter');

console.log('第一次调用模块[1_modules_custom_counter]');

counter.seOutputVal(10);               //设置从10开始计数
counter.setIncrement (10);             //设置增量为10

counter.printNextCount();
counter.printNextCount();
counter.printNextCount();
counter.printNextCount();

/*
    require多次调用同一模块不会重复加载
*/
var counter = require('./1_modules_custom_counter');

console.log('第二次调用模块[1_modules_custom_counter]');
counter.printNextCount();
自定义模式调用 源码

相关文章: