深入浅出Node.js 笔记

2018-08-09  本文已影响0人  阿尔方斯

第一章 node简介

语言和环境之间的关系

语言,是编写代码的语法规范。
环境(平台),提供了执行代码的能力
语言必须在环境上运行。

非阻塞式I/O模型
类似于同步和异步

Node环境中js组成部分

ECMAscript + 全局成员 + 核心API模块

环境变量

环境变量的作用,在任意目录下面都可以打开(环境变量/path配置的)程序
用户变量和系统变量区别
用户变量只有当前用户可以使用,系统变量所有用户都可以使用

访问核心成员直接使用 require('核心成员name')来调用

FS模块

文件读取会根据执行Node命令时的目录拼接
__dirname 表示当前文件所处的文件路径

path模块

path.join 兼容性更好,可以针对不同系统

JS的单线程和异步

js解析和执行是单线程的,但是 宿主环境(浏览器或node)是多线程的
异步任务是由宿主环境开启子线程完成,通过 事件驱动,回调函数,队列,把完成的任务交给主线程执行
js引擎一直在做一个工作,就是从任务队列中提取任务,放到主线程执行

异步执行任务的好处,提高耗时任务的效率,提高js解析引擎的工作效率

模块化

模块化为了解决文件之间的耦合
是一种开发思想

模块化的好处
协作开发,方便维护

CommonJs 规范
exports 定义模块
module 模块
require 请求模块

在模块中,上下文提供require()方法引入外部模块。exports对象用于到处当前模块的方法或变量,并且他是唯一的到处的出口。在模块中,还存在一个module对象,它代表模块自身,exports是module的属性,在node中,一个文件就是一个模块,讲方法挂载在exports对象上作为属性即可定义导出的方式
一个模块作用域中,向外暴露私有成员是,已 module.exports为准

AMD 和 CMD 规范

commonJS模块是同步加载的
AMD和CMD下模块是异步加载的
1.AMD 对于依赖的模块,ADM是提前执行, 推崇依赖前置
2.CMD 延时执行, CMD推崇 as lazy as possible 推崇依赖就近

ES6的模块化:es6是在语言标准层面上,实现模块功能,完全可以取代CommonJS和AMD规范,称为浏览器和服务器通用的模块解决方案;

npm (node package manager)

Node包管理工具
常用命令:
npm install pagageName --save-dev 开发阶段需要的包,可缩写为 -D

第二章 模块机制

路径分析和文件定位

模块编译

js模块的编译

核心模块

包 与 NPM

NPM常用功能

Node.js 异步I/O

node自身 是多线程的

非I/O的异步API

函数式编程

上一篇下一篇

猜你喜欢

热点阅读