nodejs学习(模块的简单了解)

时间:2014-05-28 18:42:12   收藏:0   阅读:322

1.模块
模块(Module)是nodejs最重要的支柱,开发一个具有一定规范的程序不可能只用一个文件,

通常我们需要把各个功能拆分,封装,然后在组合在一起,模块正是为了现在这种方式而诞 

生的。在浏览器的javascript中,脚本模块的拆分和组合通常情况下我们都使用Html的

Script标签来实现,但是nodejs给我们提供了require这个函数来调用其他的模块。
-----------------------------------------------------------------------
模块是nodejs基本组成的部分,但是文件和模块都是对应的,简单来说nodejs的文件就是一个模块,但是这个文件可能是Javascript代码,Json或者是编译过的C/C++的扩展。
比如:

var http=require(‘http‘);

 

其中http即是nodejs的一个模块,而我们用require函数来调用nodejs(http)这个模块。
-----------------------------------------------------------------------
要创建一个模块就要知道nodejs的两个函数
1(exports)exports是模块公开的接口,来写一个公开的方法
2(require)require是用于从外部获取一个模块的接口,就可以获取模块exports公开的方法
一个创建nodejs模块的例子:
//ExportsModule.js

bubuko.com,布布扣
var name;
exports.setName=function(TName)
{
name=TName;
};
exports.sayHello=function()
{
console.log(‘hello‘+name);
};
bubuko.com,布布扣

 


然后在同一个目录下面在创建一个GetModule.js
//GetModule.js

var myModule=require(‘./module‘);
myModule.setName(‘Yandi‘);
myModule.sayHello();

可想而知输出的结果就是(helloYandi);

上面的这个案例Exports.js通过exports对象把setName和sayHello作为模块的访问接口,然后我们在GetModule.js中通过require来加载ExportsModule.js这个模块,然后在
GetModule.js中就可以直接访问Exports公开的接口了。
之前的案例类似于创建对象,但和对象又有本质上的区别,因为require不会被重复加载,无论我们调用几次require,获得的都是同一个模块。
我们在之前的GetModule.js稍作修改

var hello1=require(‘./ExeportsModule.js‘);
hello1.setName("One");

var hello2=require(‘./ExeportsModule.js‘);
hello2.setName("Two");
hello1.sayHello();

结果很明显 输出的Two

因为hello1和hello2指向的都是同一个实例,因次hello1被hello2给覆盖了,所以输出的结果是根据后者决定的。

nodejs学习(模块的简单了解),布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!