node 起始
Javascript
工具 → 组 件 → 框架 → 应用(业务模版组织)
浏览器兼容 功能模版 功能模版组织
(实现特效)
Javascript 先天缺乏(弱项)
模块
commonJs规范
希望Javascript能在任何地方运行
Javascript(缺陷) commonJs规范涵盖
没有模块系统 模块 I/o流
标准库较少 二进制 进程环境
没有标准接口 buffer 文件系统
缺乏包管理系统 字符集编码 套接字
单元测试 WEB服务器网端接口
包管理
浏览器 CommonJs
----------------------------- -------------------------------------
BOM DOM ECMAScript FS TCP stream Buffer ...
--------------- -----------------------------------------------------
W3C Node
commonJs模块定义:模块引用、模块定义、模块标识
模块引用:
Var math=require ('math');
用require方法来引用米快的API,可以理解为WEB页面引用JS一样。
模块定义
node中一文件就是一个模块
在模块中存在一个module对象,代表模块本身。
exports对象是module的属性,用导出当前模块的方法或者变量
///math.js math模块 exports.add=function(){ var=sum=0,i=0,args=arguments,l=args.length; while(i<1){ sum+=args[i++]; } return sum; }; ///program.js program模块 var math=require('math'); ///引用math模块 exports.increment=function(val){ return math.add(val,1); }
同样在新的模块中
var p=require('program'); ///引用program模块 var result=p.increment(3); ///就能得到返回值
模块标识
模块标识就是require()方法的参数
必须符合小坨山命名的字符串
或者以 . 或 .. 开头的相对路径或者绝对路径
可以没有文件后缀,Js
commonJs这套模块机制使用户完全不必考虑变量污染。
命名空间等方案与之相比相形见绌。
NOde的模块实现
node中模块分两类
node提供的模块 核心模块
用户编写的模块 文件模块