NodeJS学习笔记—1.CommonJS规范
2016-05-20 11:44
567 查看
由于现在web开发,越来越重视代码的复用和抽象的封装,为了解决代码的组织结构、管理、复用和部署等问题,现在普遍采用的机制是模块机制(module)。CommonJS约定桌面应用程序和服务器应用程序需要的API,如操作系统接口、数据、文件系统等,其最主要的约定就是module机制。其跟操作系统、js引擎都没有关系,只要兼容CommonJS的平台就能运行。
CommonJS是服务器端模块的规范,Nodejs采用了这个规范,所以有必要学习下。
根据CommonJS规范,一个单独的文件就是一个模块,加载模块用require方法,该方法读取模块并返回文件内的exports对象,如下:
使用require加载A.js
require默认读取js文件,所以可以省略.js后缀。js文件名前可以是相对路径也可以是绝对路径,相对路径是相对于当前require文件的。若省略了路径,node.js默认会加载一个核心模块,或者安装在node_modules中的模块。若加载的是一个目录,默认是去读package.json文件,加载该文件main属性提到的模块,否则寻找该目录下的index.js。
复杂点的C.js
调用C模块:
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();
相关文章推荐
- LeetCode 25. Reverse Nodes in k-Group(反转链表)
- 在WebStorm中调试NodeJS代码
- NodeJS Express 中创建html5的server-sent event服务端
- Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never diffe
- Node安装文档
- NodeJS学习——events
- NodeJS学习笔记 - Express4.x路由操作
- LeetCode-237.Delete Node in a Linked List
- nodejs最新教程
- leetcode-24-Swap Nodes in Pairs
- nodejs学习心得
- NodeJS学习笔记
- nodejs Controller层 封装
- nodejs npm
- nodejs中module.exports和exports.xx的区别
- node socket onmessage
- Hadoop 2.0 Yarn代码:NodeManager端代码分析_NM端各服务模块的启动
- 在windows环境下基于sublime text3的node.js开发环境搭建(转)
- Failed to obtain address information for hostname mynode1: Name or service not known
- Windows下安装node及基本操作