目录

第1章 Node.js初识
本章介绍了Node.js的一些基础知识,包括什么是Node.js、Node.js和JavaScript的关系、Node.js的特点和应用场景等。
第2章 Node.js安装与入门
本章介绍了Node.js安装与使用的基本方法,包括3m(即nvm、nrm、npm)安装法、Node.js基础示例,以及编辑器和调试等内容。
第3章 更了不起的Node.js
本章更加详细地介绍了Node.js的各类应用场景,对Node.js的核心作用进行了概括与总结,还对如何成为全栈工程师提供了宝贵建议。
第4章 更好的Node.js
本章介绍了Node.js的各种写法,包括单线程与集群,以及各种优秀实践,包括ES语法、多模块管理器Lerna、npm的替代品Yarn等。
第5章 Node.js是如何执行的
本章介绍了Node.js的源码构建和调试过程,阐述了Node.js是如何执行的,还介绍了API的调用过程,以及事件循环机制。
第6章 模块与核心
本章介绍了Node.js中的CommonJS规范、SDK模块与核心技术,还对未来的ES6模块功能进行了预测与展望。

原理

Node.js是基于Chrome V8引擎构建,Node.js是JavaScript的运行时环境。

Chrome V8引擎负责解释并执行JavaScript代码

事件循环处理库 libuv

简化了并发编程模型,事件循环和具体线程池等细节被Node.js封装了,能让更多人写出高性能的程序。

场景

构建网站
构建API
构建RPC服务
将RPC服务包装成HTTP API
RPC组装服务;
前后端分离
SSR
适用于Serverless
前端构建工具
命令行工具

API Proxy

Node Server除了静态服务外,还可以做API Proxy Server。

  1. app.get('index.js', proxy({
  2. host: 'http://alicdn.com',
  3. map: function(path) { return 'public/' + path; }
  4. }));

函数式编程

第一等公民是函数
函数柯里化 curry:传递给函数一部分参数来调用它,让它返回一个函数来处理剩下的参数