Node.js 自发布以来,已成为业界重要破局者之一。Uber、Medium、PayPal 和沃尔玛等大型企业,纷纷将技术栈转向 Node.js。Node.js 支持开发功能强大的应用,例如实时追踪 App、视频 / 文本聊天引擎、社交媒体 App 等,当前已成为开发人员热衷的一项技能。本文作者基于自身实施经历,给出一张 Node.js 学习路线图。建议开发人员考虑深入掌握 Node.js 之前,必须明确自己构建的目标,否则容易半途而废。目标导向有助于在学习中聚焦关键技能,而非纠结于是否值得去学习。
必备技能
JavaScript
对于一名前端开发人员,在考虑掌握后端技能时,无需花费大量的精力学习去 JavaScript。而对于完全小白,如果想要在尽可能短的时间内掌握 Node.js,在深入前必须领会如下概念:
箭头函数(Arrow Functions)
类型(Types)
表达式(Expressions)
函数(Functions)
语法结构(Lexical Structures)
this
循环(Loops)和作用域(Scope)
数组对象(Arrays)
字面量模板(Template Literals)
严格模式(Strict Mode)
ES6/ES7
此外,Node.js 中涉及大量的异步编程处理,推荐掌握如下概念:
定时器(Timers)
Promises
闭包(Closures)
事件循环(Event Loop)
异步编程(Async programming)和回调(callbacks)
npm 软件包管理
Node 软件包管理(Node Package Manager,npm)提供当前规模最大的注册软件库,其中提供 80 多万种软件包。正确使用 npm,可极大地降低软件包管理的复杂度,非常便于解决应用开发中的依赖问题。
npm 提供三个组成模块:
命令行接口(Command Line Interface,CLI):CLI 是大部分开发人员的首选方式,提供本机终端环境运行。
注册软件库(Registry):提供大规模开放式 JavaScript 软件和元信息数据库。
Web 站点:可查找新的软件包,并提供其它一些 npm 功能。
npm 还可管理各版本的代码及依赖。如果使用 npx,无需下载软件包即可运行软件包。
Node.js 基础知识
事件发射器(Event Emitter):做为 Node.js 中的对象,Event Emitter 在操作执行完成后发送消息,触发特定的事件。开发人员也可编写代码,监听 Event Emitter 发出的事件。例如&#x