模块化编程(二)服务器端规范:CommonJs---nodejs

前一章讲的模块化开发是针对的客户端,需要引入requireJS文件,才能使用 CcmmonJS是专门对后台模块化开发的一种规范,严格来说是对nodeJS模块化开发的一种规范,由node来实现。 所以不需要引入任何JS文件,因为这是node对ECMAscript的增强,就像客户端对JS的增强,所以才有window对象.

比如一个JS文件里面,console.log(window);如果在浏览器中运行不会报错,但在node中运行会报错, 同理在一个JS文件里,module.exports={},在浏览器中运行会报错,在node中运行不会报错,这就是window和node对JS API的增强

1.模块:一个具有特定功能的文件就是一个模块,模块之间可能存在依赖关系,使用模块可以很好的把这些依赖关系整合起来. 每一个模块都定义在一个函数中的node会将这些模块封装成函数 定义一个b模块 在另一个模块中引入b模块,会执行模块中的内容 结果就会发现b.js文件其实已经被封装成了一个函数,并且会传入五个参数 exports:一个变量,指向一个对象,最后模块会导出这个对象供其它模块使用 require:一个方法,可以引入另一个模块 module:模块本身,module.exports也指向一个对象,和exports参数指向的是同一个对象,但最后会导出module.exports这个属性 __filename:模块的路径 __dirname:模块的文件名

2.主模块:通过命令行参数传递给NodeJS以启动程序的模块被称为主模块。主模块负责调度组成整个程序的其它模块完成工作 3.模块的缓存:一个模块中的JS代码仅在模块第一次被使用时执行一次,并在执行过程中初始化模块的(exports) 导出对象。之后,缓存起来的导出对象被重复利用 4.模块又分为三种: 第一种:自己定义的模块,需要使用相对路径来引入 第二种:系统模块,直接使用模块名来引入 第三种:第三方模块,即别人做的一个功能模块,也叫做包,然后放到网上我们直接下载来用,这种模块都放在一个叫node_module的文件夹下 在这个文件夹下可以放一个或多个第三方包,每个包是一个文件夹。

接下来详细说一下这个第三方包 1.首先引用的时候,索引的时候顺序是这样的:当前文件目录下的node_module,父目录的node_module,沿路径向上索引到根目录的node_module,环境变量的全局node_module。 2.组成包的所有子模块中,需要有一个入口模块,默认是包目录下的Index.js文件,也可以在包中新建一个package.json文件,里面的main参数定义了入口子模块.

转载于:https://my.oschina.net/u/2499097/blog/751232

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值