您的位置:首页 > Web前端 > Node.js

Node.js 入门 笔记

2018-01-27 15:02 696 查看
模块(Module)和包(Package)是Node.js 最重要的支柱。开发一个具有一定规模的程序不可能只用一个文件,通常需要把各个功能拆分、封装,然后组合一起,模块正是为了实现这种方式而诞生。Node.js 的模块和包机制的实现参照了CommonJS的标准,但并未完全遵循。

什么是模块

模块是Node.js 应用程序的基本组成部分,文件和模块一一对应的。即一个Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON或者编程过的C/C++扩展。

创建及加载模块

Node.js 提供了exports 和require 两个对象,其中exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即获取模块的exports 对象。

require 不会重复加载模块,也就是无论调用多少次require,获得的模块都是同一个,最终的输出由后者决定的。

注:exports 本身仅仅是一个普通的空对象,即{ },它专门用来声明接口,本质上是通过它为模块闭包的内部建立了一个有限的访问接口。因此它没有任何特殊的地方,所以可替代。不可以通过对exports 直接赋值代替对module.exports 赋值。exports 实际上是一个和module.exports 指向同一个对象的变量,它本身会在模块结束后释放,但module 不会,因此module.exports 来访问接口

创建包

包是在模块基础上更进一步的抽象,类似于函数库、类库。将某个独立的功能封装起来,用于发布、更新、依赖管理和版本控制。

Node.js 的包是一个目录,严格符合CommonJS 规范的包应该具备一下特征:

package.json 必须在包的顶层目录下;

二进制文件应该在bin 目录下;

JavaScript 代码应该在lib 目录下;

文档应该在doc 目录下;

单元测试应该在test 目录下;

package.json 是CommonJS 规定的用来描述包的文件,完全符合规范的package.json 文件应该包含有一下字段。

name:包的名称,必须是唯一的,由小写英文字母、数字和下划线组成,不能包含空格。

description:包的简要说明。

version:符合语义化版本识别规范的版本字符串。

keywords:关键字数组,通常用于搜索。

maintainers:维护者数组,每个元素要包含name、email(可选)、web(可选)字段。

contributors:贡献则数组,格式与maintainers 相同。包含作者应该是贡献数组的第一个元素。

bugs:提交bug 的地址,可以是地址或者电子邮件地址。

licenses:许可证数组,每个元素要包含type(许可证的名称)和url(链接到许可证文本的地址)字段。

repositories:仓库托管地址数组,每个元素都包含type(仓库的类型,如git)、url(仓库的地址)和path(相对于仓库的路径,可选)字段。

dependencies:包的依赖,一个关联数组,由包名称和版本号组成。

使用node-inspector 调试Node.js

使用npm install -g node-inspector 安装 node-inspector

终端通过 node –debug-brk=5858 debug.js

打开另一个终端 $node-inspector
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: