Node.js学习笔记(二) --- CommonJs和Nodejs 中自定义模块

1、 什么是 CommonJsjavascript

JavaScript 是一个强大面向对象语言,它有不少快速高效的解释器。 然而, JavaScript
标准定义的 API 是为了构建基于浏览器的应用程序。并无制定一个用于更普遍的应用程序
的标准库。 CommonJS 规范的提出,主要是为了弥补当前 JavaScript 没有标准的缺陷。 它的终
极目标就是: 提供一个相似 PythonRuby Java 语言的标准库,而不仅是停留在小脚本程序
的阶段。用 CommonJS API 编写出的应用, 不只能够利用 JavaScript 开发客户端应用, 并且
还能够编写如下应用。
java

•服务器端 JavaScript 应用程序。( nodejs)
•命令行工具。
•桌面图形界面应用程序。

CommonJS 就是模块化的标准, nodejs 就是 CommonJS( 模块化) 的实现。
node

2、 Nodejs 中的模块化
Node 应用由模块组成,采用 CommonJS 模块规范。
npm

2.1 Node 中,模块分为两类:
一类是 Node 提供的模块,称为核心模块;另外一类是用户编写的模块,称为文件模块
json

核心模块部分在 Node 源代码的编译过程当中,编译进了二进制执行文件。在 Node
程启动时,部分核心模块就被直接加载进内存中,因此这部分核心模块引入时,文件定位和
编译执行这两个步骤能够省略掉,而且在路径分析中优先判断,因此它的加载速度是最快的。
如: HTTP 模块 、 URL 模块、 Fs 模块都是 nodejs 内置的核心模块,能够直接引入使用
浏览器

文件模块则是在运行时动态加载,须要完整的路径分析、文件定位、编译执行过程、
速度相比核心模块稍微慢一些,可是用的很是多。 这些模块须要咱们本身定义。 接下来我
们看一下 nodejs 中的自定义模块。
服务器

2.2 CommonJSNodejs) 中自定义模块的规定:模块化

1.咱们能够把公共的功能抽离成为一个单独的 js 文件做为一个模块, 默认状况下面这
个模块里面的方法或者属性, 外面是无法访问的。若是要让外部能够访问模块里面的方法或
者属性, 就必须在模块里面经过 exports 或者 module.exports 暴露属性或者方法。
2. 在须要使用这些模块的文件中, 经过 require 的方式引入这个模块。这个时候就能够
使用模块里面暴露的属性和方法。
工具

2.3 定义使用模块:
ui

// 定义一个 tools.js 的模块
//模块定义
var tools = {
sayHello: function() {
return 'hello NodeJS';
},
add: function(x, y) {
return x + y;
}
};
// 模块接口的暴露
// module.exports = tools;
exports.sayHello = tools.sayHello;
exports.add = tools.add;
var http = require('http');
// 引入自定义的 tools.js 模块
var tools= require('./tools');
tools.sayHello(); //使用模块

3、 npm init 生成 package.json

npm init --yes
相关文章
相关标签/搜索