大约十年前(2009年)瑞安·达尔(Ryan Dahl)(NodeJS的原始开发者)发布了NodeJS的初始版本, 没有人能想到在短时间内Node会获得如此大的普及, 它将成为小型到大型企业为其应用程序构建后端服务的头等大事。如今, 大多数开发人员都知道NodeJS的炒作和流行, 并且由于越来越受欢迎节点已成为学习的基本技能之一.
Node是全球最热门的技术, 尤其是在硅谷。开门是完美的技巧惊人的职业机会对于任何软件开发人员。你可以构建各种应用程序, 例如社交媒体应用程序, 视频和文本聊天引擎, 实时跟踪应用程序, 在线游戏以及协作工具。许多公司将其技术堆栈切换到NodeJS, 包括Paypal, LinkedIn, Uber, Yahoo, Medium, GoDaddy, Groupon, 沃尔玛.
所有以上原因足以告诉你NodeJS为什么在程序员中如此流行以及为什么你应该学习它。现在的问题是从哪儿开始?你应该涵盖哪些主题?什么是NodeJS框架, 哪个框架值得学习?你是否需要从书中学习所有概念, 或者应该阅读一些在线教程?放松, 深呼吸, 我们将一一告诉你所有内容, 并为你提供完整的路线图成为NodeJS开发人员。
为什么选择NodeJS? (确定最终目标)?
在你开始学习NodeJS之前,你应该有一个明确的目标,为什么你想学习NodeJS?你到底想用NodeJS做什么?您是想创建一些web应用程序,还是想自己创业,还是想找一份新工作?您想要构建一些聊天应用程序还是想要构建一些在线游戏?
大多数初学者会犯一个常见的错误, 即他们只是出于学习目的而没有目标的情况下才开始学习语言/框架。请记住, 学习新知识
技术或语言
是另一回事, 用它来构建一些实际的应用程序是不同的, 作为程序员, 你的目标应该是能够构建东西, 而不仅仅是学习。因此, 首先探索每个领域, 找出你感兴趣的地方。
我们讨论了可以使用NodeJS的各个领域。因此, 首先, 要确定要构建的目标, 一旦确定目标, 就坚持下去, 继续进行下一步, 即找出资源。
如何学习NodeJS?
要学习NodeJS, 你应该知道的最重要的事情是JavaScript。除非你对JavaScript没有很好的命令, 否则不要误以为学习Node。无论你要使用NodeJS进行什么构建, 都将使用许多JavaScript概念。如果你想了解学习JavaScript的方法, 请查看链接如何成为JavaScript开发人员?在掌握JavaScript的良好命令后, 请移至NodeJS并为其找到资源...
学习资源
那里是在线提供了大量资源和视频, 这对于开发人员在哪里开始学习所有概念感到困惑。原来, 作为一个初学者, 如果你对这么多概念不知所措, 那就不要害怕并停止学习。有耐心, 探索, 并保持坚定to它。另外, 无论你使用什么资源更喜欢代码和该资源。记住那没有教程or培训班能够教导如果你不熟悉代码, 则可以使用任何语言或框架。所以在学习和构建一些代码时应用领域靠你自己
看看官方文件并详细了解NodeJS的各种概念。你也可以访问链接NodeJS教程极客。你也可以参加一些在线视频教程或课程, 但是在大多数课程中, 不同的讲师可能会介绍NodeJS的不同概念。这可能会让你不知所措, 也可能造成混乱。因此, 重要的是要了解学习NodeJS的明确路径或路线图。
我们将在下一部分中讨论完整的路线图。如果你对接下来要学习的内容感到困惑, 该路线图将指导你。但是请记住, 你的学习曲线取决于先前的编程经验和JavaScript知识。也, 在NodeJS中有很多东西要学习。因此, 一旦你完成学习, 就可以开始在不同平台上自行探索NodeJS并进行构建不同类型的of应用领域用它。
学习路线图
1. NodeJS简介
从开始基本的 介绍NodeJS的一部分。你应该知道什么是NodeJS, 其中它被使用, 一些它的特征, 以及公司使用它的原因。你可以阅读文章7个基于NodeJS构建的著名应用程序:原因和好处 了解为什么公司切换到NodeJS来构建他们的应用程序。重要的是要知道为什么要选择NodeJS而不是另一个构架为了发展服务器端 应用领域。探索NodeJS的不同应用领域, 优势, 局限性, 和NodeJS应用程序部署服务器。
我们正在提供概述, 但将更详细地探讨该主题…
NodeJS是一个基于Google的服务器端JavaScript运行时环境Chrome V8 JavaScript引擎。它将JavaScript代码编译为本机代码, 并提高了应用程序的效率。它的跨平台运行环境 提供事件驱动, 无阻塞的输入输出系统。此功能使其最适合构建快速, 高度可靠且可扩展的网络或Web应用程序以及数据密集型实时应用程序。
NodeJS提供了良好的吞吐量和更高的一致性, 这就是为什么公司广泛使用它来构建大型可扩展的单页应用程序, 视频流应用程序和Web应用程序。
历史和发行
- 2009年发行, 的NPM的第一个版本已创建。它是由瑞安·达尔(Ryan Dahl)。
- 2010年推出了Express和socket.io。
- 2011年, LinkedIn, Uber和许多大公司开始使用NodeJS。
- 在2016年, Yarn与Node.js 6一起被引入
- NodeJS的最新LTS版本是12.18.3。
2.了解NodeJS架构
- 基于单线程事件循环模型架构, 这意味着客户端请求将由NodeJS中的单个线程执行。
- NodeJS的事件驱动性质使你可以同时处理多个客户端请求。
3.安装NodeJS
安装NodeJS是一个非常简单的过程。你可以从以下网址下载稳定版的NodeJ:NodeJS官方网站。根据你的操作系统和系统配置, 安装NodeJS, 然后你可以立即开始对其进行操作。确保你的RAM至少为4GB以支持NodeJS。
4.NPM(节点程序包管理器)
节点包管理器是在NodeJS中学习的最重要的核心概念之一。安装后, 部分将了解NPM。 NPM附带800, 000+可用于不同目的的库。这些预构建的库带有自己的代码, 可以在NodeJS中构建不同的功能。因此, 你无需从头开始构建所有内容。你只需使用npm命令安装所需的库, 然后在应用程序中使用该库即可。因此, 这些库在加快应用程序开发过程方面有很大帮助。
5.JSON文件
JSON文件是在NodeJS中学习的另一个必不可少的也是最重要的概念。你在任何NodeJS项目中要做的第一件事就是创建JSON文件。它是任何项目中的清单文件, 你可以在应用程序中找到名为package.json的文件。它包含项目的元数据。换句话说, 它管理和保存有关程序包和依赖项的信息以及项目中使用的脚本。如果你想检查应用程序中使用了哪些软件包或依赖项, 只需打开该文件并检查信息即可。
6. Node.js基础
从这一步开始, 你实际上会不熟悉NodeJS的脚本。与其他编程语言一样, 你将学习如何打印" Hello World!"。然后你开始学习JavaScript中的基本概念, 例如变量, 数据类型, 运算符, 函数等。在开始在NodeJS中构建实际应用程序之前, 请确保你对JavaScript中的所有这些概念都非常了解。
7.文件系统
在学习了基础知识之后, 接下来需要学习的是如何读取数据并将数据写入文件而不是控制台。要从目录访问物理文件系统, NodeJS使用fs模块。
8.事件
NodeJS具有事件驱动功能, 并且Node的许多核心功能都基于事件的概念。事件基本上是一个信号, 表明应用程序中发生了某些事情。在NodeJS中, 事件模块可供开发人员创建和处理自定义事件。基于NodeJS构建的应用程序支持并发, 因为它们都基于单线程和事件驱动的体系结构。
9. HTTP模块
HTTP模块是NodeJS的强大构建块。 HTTP的模块大量用于构建服务器端网络应用程序。使用HTTP模块可以轻松构建带有NodeJS的REST API。
10.框架
像其他所有服务器端语言一样, NodeJS还提供了许多框架, 可帮助构建具有更好功能的应用程序。从头开始编写代码以在任何应用程序中构建各种功能是一个耗时的过程。因此, 在你的应用程序中使用该框架使你的工作更轻松, 并且可以更快地构建任何类型的功能。下面给出了一些流行的NodeJS框架。
- Express.js
- Meteor.js
- AdonisJS
- NestJs
- Sails
- KoaJS
- LoopbackJS
11.数据库
我们讨论了许多你应该了解的概念, 以便建立一个功能齐全的NodeJS应用程序。但你需要存储在应用程序中的信息如何?当然, 像所有其他应用程序一样, 你需要将数据存储在数据库中。根据应用程序或需求的类型, 你可以选择任何数据库并使用NodeJS对其进行配置。下面给出了一些最适合NodeJS的数据库…
- 关系型
- SQL Server
- PostgreSQL的
- MariaDB
- MySQL
- 云数据库
- CosmoDB
- DynamoDB
- 搜索引擎
- ElasticSearch
- Solr
- Sphinx
- NoSQL
- MongoDB
- Redis
- Cassandra
- CouchDB
12.测试
任何应用程序都需要经过适当的测试, 才能在市场上发布。节点也是如此。如果你正在学习Node, 则还应该具有有关NodeJS应用程序的测试框架或库的知识。查看下面为NodeJS应用提供的一些测试框架和库…
- 单元, 行为, 集成测试
- Jasmine
- Jest
- Enzyme
- Chai
- Mocha
- 端到端测试
- Selenium
- Puppeteer
这就是从头开始学习NodeJS的路线图。我们希望这会有所帮助!