Node 是一个让 JavaScript 运行在服务端的开发平台, 它让 JavaScript 成为与 PHP,Python,Perl,Ruby 等服务端语言平起平坐的脚本语言.
一, Node.JS 的模块与 Commonjs 规范
1.JS 的天生缺陷 -- 缺少模块化管理机制
. 表现 --JS 中容易出现变量被覆盖, 方法被替代的情况 (既被污染). 特别是存在依赖关系时, 容易出现错误. 这是因为 JS 缺少模块管理机制, 来隔离实现各种不同功能的 JS 判断, 避免它们相互污染.
. 解决 -- 经常采用命名空间的方式, 把变量和函数限制在某个特定的作用域内, 人肉约定一套命名规范来限制代码, 保证代码安全运行. jQuery 中有许多变量和方法, 但是无法直接访问, 必须通过 jQuery,$ 调用 各个方法.
2.Commonjs 规范
不同于 jQuery,Commonjs 是一套规范, 约定了 JS 如何组织, 如何编写, 包括包, 二进制, 套接字, 单元测试等等.
大部分标准在拟定和讨论之中, 首先把执行不同任务的代码块和代码文件看为独立的模块, 每一个模块都是一个单独的作用域, 但不是孤立的, 可能存在依赖关系. 每个模块分为三个部分, 定义, 标识和引用. 这套规范与现实产品如 node.JS 相互影响, 良性循环.
3.Node.JS 的模块管理机制
基于 commonjs 实现了模块管理系统. node 中每一个 JS 文件都是一个独立的模块, 在其内部不需要有命名空间, 不需要担心变量的污染和方法定义时的隔离. 同时模块之间可以组合形成更强大的模块或功能包. NPM 即是用来管理各种功能包的.
二, 模块的分类
在 Node.JS 中文件和模块是一一对应的
文件分为几种不同的类型, 大概分为核心模块, 本地模块和通过 NPM 安装的第三方模块
根据模块的类型有几种引用模块的方式
1. 可以通过文件路径来引用模块
2. 通过模块名来引用
如果用模块名来引用非核心模块的话, Node 最终会把模块名映射到
对应的模块文件的路径, 而那些包含核心函数的核心模块会在 Node 启动时预先加载
三, 包管理:
NPM 是随同 Node.JS 一起安装的包管理工具, 能解决 Node.JS 代码部署上的很多问题, 常见的使用场景有以下几种:
允许用户从 NPM 服务器下载别人编写的第三方包到本地使用. 允许用户从 NPM 服务器下载并安装别人编写的命令行程序到本地使用. 允许用户将自己编写的包或命令行程序上传到 NPM 服务器供别人使用.
来源: http://www.css88.com/qa/node-js/12212.html