模块和包

模块和包:
模块和包是Node.js最重要的支柱,开发一个具有一定规模的程序不可能只用一个文件,通常需要把各个功能拆分,封装,然后
组合起来,模块正是为了实现这种方式而诞生的,Node.js提供了require函数来调用其他模块而且模块都是基于文件的,机制十
分简单

模块是Node.js应用程序的基本组成部分,文件和模块是一一对应的,Node.js提供了exports和require两个对象,其中exports
是模块公开的接口,require用于从外部获取一个公开的接口,即所获取模块的exports对象

//hello1和helo2指向的是同一个实例,因此hello1.setName的结果被hello2.setName覆盖,最终输出结果是由后者决定的

// exports.Hello = Hello;
module.exports = Hello;
//在外部引用该模块时,其接口对象就是要输出的Hello对象本身,而不是原先的exports
//事实上,exports本身仅仅是一个普通的空对象,即{},它专门用来声明接口,本质上是通过它为模块闭包的内部建立
//一个有限的访问接口,因为它没有任何特殊的地方,所以可以用其他东西来代替


/*
包是在模块基础上更深一步的抽象,他将某些独立的功能封装起来,用于发布、更新、依赖管理和版本控制
Node.js是一个目录,其中包含一个JSON格式的包说明文件package.json,严格符合CommonJS规范的包,应该具备以下特征:
package.json必须在包的顶层目录下
二进制文件应该再bin目录下
JavaScript代码应该在lib目录下
文档应该再doc目录下
单元测试应该在test目录下
*/

/*
最简单的包,就是一个作为文件夹的模块

包通常是一些模块的集合,在模块的基础上提供了更高层的抽象,相当于提供了一些固定接口的函数库,
通过定制package.json,我们可以创建更复杂、更完善、更符合规范的包用于发布



*/

工作并不只是为了那点工资,而是为了创造一份属于自己的事业
原文地址:https://www.cnblogs.com/zouer/p/5041542.html