由于现在web开发,越来越重视代码的复用和抽象的封装,为了解决代码的组织结构、管理、复用和部署等问题,现在普遍采用的机制是模块机制(module)。CommonJS约定桌面应用程序和服务器应用程序需要的API,如操作系统接口、数据、文件系统等,其最主要的约定就是module机制。其跟操作系统、js引擎都没有关系,只要兼容CommonJS的平台就能运行。

CommonJS是服务器端模块的规范,Nodejs采用了这个规范,所以有必要学习下。

根据CommonJS规范,一个单独的文件就是一个模块,加载模块用require方法,该方法读取模块并返回文件内的exports对象,如下:

 //A.js
exports.message="hello";
exports.say=function(){
console.log("say hi");
}

使用require加载A.js

 //B.js
var b=require(./A);
b.say();

require默认读取js文件,所以可以省略.js后缀。js文件名前可以是相对路径也可以是绝对路径,相对路径是相对于当前require文件的。若省略了路径,node.js默认会加载一个核心模块,或者安装在node_modules中的模块。若加载的是一个目录,默认是去读package.json文件,加载该文件main属性提到的模块,否则寻找该目录下的index.js。

复杂点的C.js

function C(){
this.say=function(){
};
this.hello=function(){
}
} exports.C=C;

调用C模块:

var d=require(./C).C;
var d1=new d();
d1.say();  

最新文章

  1. java中 try return finally return
  2. C语言结构体位域
  3. Android生命周期
  4. Delphi 完整的Bug决议工具EurekaLog的使用
  5. Listview的onItemClickListener无法响应的解决方法(转)
  6. 30 分钟开发一个简单的 watchOS 2 app <oneVcat>
  7. Linux进程间通讯的几种方式的特点和优缺点,和适用场合
  8. C关键字
  9. 《Linux内核设计的艺术》学习笔记(六)执行setup.s
  10. SAP MM移动平均价和标准价逻辑
  11. Sed Regular Expression
  12. 使用usb+preseed在virtualbox上安装ubuntu(一)
  13. Android实现XML解析技术
  14. ocp 1Z0-047 1-60题解析
  15. Zabbix lld发现磁盘监控
  16. java 编码转换
  17. C#程序打包安装部署
  18. mongDB数据库 小白学习
  19. STS中db.properties配置文件
  20. windows 检测进程pid

热门文章

  1. I2C总线之(二)---时序
  2. 【HDOJ】1385 Minimum Transport Cost
  3. Spring MVC中DispatcherServlet工作原理探究
  4. 使用LoadRunner对Web Services进行调用--Import Soap
  5. Git error: hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused b
  6. POJ 1159 Palindrome 最长公共子序列的问题
  7. GPUImage实现过程
  8. 机器学习算法库scikit-learn的安装
  9. poj 1328 Radar Installation【贪心区间选点】
  10. iOS 应用程序本地化