大约十年前(2009 年),当Ryan Dahl (NodeJS 的原始开发者)发布 NodeJS 的初始版本时,没有人能想到,Node 在短时间内会获得如此大的人气,并成为从小到大的首要任务企业为其应用程序构建后端服务。如今,大多数开发人员都意识到 NodeJS 的炒作和流行,并且由于其越来越受欢迎,Node 已成为学习的必备技能之一。
Node 是全球最热门的技术,尤其是在硅谷。这是为任何软件开发人员开辟惊人职业机会的完美技能。您可以构建各种应用程序,例如社交媒体应用程序、视频和文本聊天引擎、实时跟踪应用程序、在线游戏和协作工具。许多公司将他们的技术栈转向 NodeJS,包括Paypal、LinkedIn、Uber、Yahoo、Medium、GoDaddy、Groupon、Walmart 。
以上所有理由足以告诉你为什么NodeJS在程序员中很受欢迎,为什么你应该学习它。现在的问题是从哪里开始?你应该涵盖哪些主题?什么是 NodeJS 框架,哪一个好学?您是否需要从一本书中学习所有概念,还是应该学习一些在线教程?放松,深呼吸,我们会一一告诉你一切,并给你一个完整的路线图,成为一名 NodeJS 开发者。
为什么是 NodeJS? (决定你的最终目标)?
在你开始你的 NodeJS 之旅之前,你应该有一个明确的目标,为什么你想学习 NodeJS?你到底想用 NodeJS 做什么?您是想构建一些 Web 应用程序,开始自己的业务还是您的目的是获得一份新工作?您是想构建一些聊天应用程序还是想构建一些网络游戏?
大多数初学者都犯了一个常见的错误,他们开始学习语言/框架只是为了学习它而没有考虑目标。请记住,学习新技术或语言是另一回事,使用它来构建一些现实世界的应用程序是不同的,作为程序员,您的目的应该是能够构建东西,而不仅仅是学习。所以首先要探索每个领域,找出你的兴趣所在。
我们已经讨论了可以使用 NodeJS 的各个领域。所以首先,决定你到底想要构建什么,一旦你的目标确定了,坚持下去并进入下一步,即寻找资源。
如何学习 NodeJS?
要学习 NodeJS,你应该知道的最重要的事情是 JavaScript。除非您对 JavaScript 没有很好的掌握,否则不要错误地学习 Node。无论您将使用 NodeJS 构建什么,您都将使用大量 JavaScript 概念。如果您有兴趣了解 JavaScript 的学习路径,请查看链接如何成为 JavaScript 开发人员?一旦你对 JavaScript 有了很好的掌握,就转到 NodeJS 并找到它的资源……
学习资源
有很多资源和可用视频在线和它混淆开发商从哪里开始学习所有的概念。最初,作为初学者,如果您对这么多概念感到不知所措,请不要害怕并停止学习。要有耐心,探索并坚持下去。此外,无论您喜欢哪种资源,都可以将代码与该资源一起使用。请记住,如果您不熟悉代码,则没有任何教程或课程可以教您任何语言或框架。因此,在您自己学习和构建一些应用程序的同时编写代码。
查看官方文档,详细了解NodeJS的各种概念。您还可以访问链接 NodeJS 教程 GeeksforGeeks 。您也可以观看一些在线视频教程或课程,但在大多数课程中,不同的讲师可能涵盖 NodeJS 的不同概念。这对你来说可能是压倒性的,它也会造成混乱。因此,了解学习 NodeJS 的清晰路径或路线图很重要。
我们将在下一节讨论完整的路线图。如果您对接下来要学习的内容感到困惑,路线图会为您提供指导。但请记住,您的学习曲线取决于之前的编程经验和 JavaScript 知识。此外, NodeJS 中有很多东西要学习。所以一旦你完成学习,就开始在不同的平台上自己探索 NodeJS 并用它构建不同类型的应用程序。
学习路线图
一、NodeJS简介
从基础开始 NodeJS的介绍部分。你应该知道 NodeJS是什么,它的用途,它的一些特性,以及公司为什么使用它。您可以阅读文章 7 Famous Apps Built on NodeJS: Reasons and Benefits以了解公司为何转向 NodeJS 来构建他们的应用程序。重要的是要知道为什么选择 NodeJS 而不是另一个框架来开发服务器端 应用程序。探索 NodeJS 的不同应用领域、优势、局限性,以及 NodeJS 应用部署服务器。
我们给出了一个概述,但更详细地探讨了这个主题……
NodeJS 是一个基于 Google Chrome V8 JavaScript 引擎构建的服务器端 JavaScript 运行时环境。它将 JavaScript 代码编译成原生机器码,提供更高的应用效率。它是一个跨平台的运行时环境 它提供了一个事件驱动的、非阻塞的输入输出系统。此功能使其最适合构建快速、高度可靠且可扩展的网络或 Web 应用程序以及数据密集型实时应用程序。
NodeJS 提供了良好的吞吐量和更高的一致性,这就是公司大量使用它来构建大型可扩展单页应用程序、视频流应用程序和 Web 应用程序的原因。
历史和发布
- 于 2009 年发布,并创建了 NPM的第一个版本。它是由瑞安达尔介绍的。
- 2010 年推出了 Express 和 socket.io。
- 2011 年,LinkedIn、Uber 和许多大公司开始使用 NodeJS。
- 2016 年 Yarn 与 Node.js 6 一起推出
- NodeJS 的最新 LTS 版本是 12.18.3。
2. 了解 NodeJS 架构
- 基于单线程事件循环模型架构,这意味着客户端请求将由 NodeJS 中的单个线程执行。
- NodeJS 的事件驱动特性允许您同时处理多个客户端请求。
三、NodeJS的安装
安装 NodeJS 是一个非常简单的过程。您可以从 NodeJS 官方站点下载 NodeJs 的稳定版本。根据您的操作系统和系统配置安装 NodeJS,然后您可以立即开始使用它。确保您的 RAM 至少为 4GB 以支持 NodeJS。
4. NPM (节点包管理器)
Node包管理器是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
- 阿多尼斯
- NestJs
- 帆
- KoaJS
- 环回JS
11.数据库
我们讨论了许多您应该了解的概念,以便构建功能齐全的 NodeJS 应用程序。但是,您需要在应用程序中存储的信息呢?当然,像其他所有应用程序一样,您需要将数据存储在数据库中。根据应用程序的类型或要求,您可以选择任何数据库并使用 NodeJS 对其进行配置。下面给出了一些最适合 NodeJS 的数据库……
- 关系型
- 数据库服务器
- PostgreSQL
- 玛丽亚数据库
- MySQL
- 云数据库
- 宇宙数据库
- 动态数据库
- 搜索引擎
- 弹性搜索
- 索尔
- 狮身人面像
- 无SQL
- MongoDB
- Redis
- 卡桑德拉
- 沙发数据库
12. 测试
任何应用程序在投放市场之前都需要进行适当的测试。节点也是如此。如果您正在学习 Node,您还应该具备 NodeJS 应用程序测试框架或库的知识。查看下面给出的一些 NodeJS 应用程序测试框架和库……
- 单元、行为、集成测试
- 茉莉花
- 笑话
- 酵素
- 柴
- 摩卡
- 端到端测试
- Selenium
- 傀儡师
这就是从一开始就学习 NodeJS 的路线图。我们希望这是有帮助的!!!