1. JavaScript
如果你是一名希望掌握一些后端技能的前端开发人员,那么在开始构建 Node.js 应用程序之前,将不必花费大量时间学习 JavaScript。但是,如果你是一个初学者,希望在尽可能短的时间内掌握 Node.js,那么在深入研究 Node.js 环境之前,必须学习以下概念。
-
箭头函数
-
数据类型
-
表达式
-
函数
-
词法
-
this
-
循环和作用域
-
数组
-
模版字符串
-
严格模式
-
ES6/ES7
在Node.js中,将面对大量的异步编程,为此,建议学习以下概念。
-
计时器
-
Promises
-
闭包
-
事件循环
-
异步函数
-
回调函数
2. NPM
Node Package Manager 拥有大量的软件包,在我们开发需要大量依赖关系的应用程序时,使用 NPM 包管理程序将非常方便。
3. Node.js 基础
-
Event Emitters
-
Callbacks
-
Buffers
-
Module System
4. 版本控制系统
Git,GitHub
5. HTTP / HTTPS协议
了解有关如何使用传输协议传输数据的基础知识将使您成为更好的Node.js开发人员,对HTTP和HTTPS的工作原理有很好的了解。HTTPS使用称为传输层安全性(TLS)的加密协议来加密通信。在后端环境中有很多东西要学习,如果您不了解网络的工作原理,可能会有些困惑,有以下几种请常见的求方法用于网络上的基本通信:
-
GET:用于检索资源的表示形式
-
POST:用于创建新资源
-
PUT:用于更新功能
-
PATCH:用于修改功能
-
DELETE:用于删除URL标识的资源
-
OPTIONS:请求给定URL或服务器的允许的通信选项
6. WEB 框架
以下框架不需要全部精通,择一学习即可。
-
Express.js
-
Meteor.js
-
Sails.js
-
Koa.js
-
Nest.js
7. 数据库管理
关系型数据库
-
SQL Server
-
MySQL
-
PostgreSQL
-
MariaDB
NoSQL数据库
-
MongoDB
-
Redis
8. 全文检索
ElasticSearch
一个基于Apache Lucene并使用Java开发的搜索和分析引擎。使用ElasticSearch,您可以实时存储和分析大量数据。当它搜索索引而不是搜索文本时,ElasticSearch也实现了出色的搜索性能。它的核心是使用基于结构的文档,而不是广泛的REST API附带的用于存储和搜索数据的表和模式。您可以将ElasticSearch视为处理JSON请求并向您返回JSON数据的服务器。
Solr
它提供了相当高级的实时搜索功能,例如字段搜索,布尔查询,阶段查询,模糊查询,拼写检查,自动完成等等。
9. 缓存
Memory Cache
这种技术通常也称为缓存,因为在大多数情况下,缓存与服务器中的内存相关联。在这种技术中,服务器内存的一部分用作缓存,我们在其中存储减少应用程序中的网络调用所需的所有数据。在Node.js中,我们拥有node-cache 和 memory-cache作为一些出色的库来处理nodejs服务器中的内存缓存。
Distributed Cache
在这种缓存技术中,我们将多个网络的内存合并到一个内存数据存储中,之后将其用作最终数据缓存以证明对数据的快速访问。此技术尤其适用于大量数据,并且通过向群集添加更多服务器内存,大量的网络调用同时允许增量扩展和扩展。关于分布式缓存,Redis是最著名的事情之一。
10. 模板引擎
使用模板引擎,我们可以在应用程序中使用静态模板文件,而在运行时,该模板引擎将模板文件中的变量替换为实际值,然后将模板转换为发送给客户端的HTML文件。下面列出了一些流行的模板引擎。
-
Mustache.js
-
Handlebars
-
EJS
11. 实时通讯
如果您只是作为后端开发人员起步,那么在了解Socket.IO中的实时通信方面有很多事情,实时通信背后的主要逻辑就在于客户端和服务器之间。它允许流动双向客户端与服务器之间的数据,你能想到的双向数据流的数据的两个终端之间的同步流程,实现实时通讯的行为,这类行为被启用时,客户端在浏览器中具有Socket.IO以及与Socket.IO软件包集成的服务器。并且数据可以以JSON请求的形式发送。
12. API Clients
-
REST
-
GraphQL
13. 测试
单元测试框架
在单元测试中,我们隔离地测试各个单元/组件,其中单元可以是应用程序中代码中可测试的最小部分。在Node.js中,下面列出了几种常见的单元测试框架:
-
Jest
-
Mocha
-
Chai