Node.js - 教程



Node.js 是一个强大的 JavaScript 运行时环境,基于 Google Chrome 的 V8 JavaScript 引擎构建。Node.js是开源和跨平台的。

什么是Node.js?

Node.js 不是像 Python、Java 或 C/C++ 那样的编程语言。Node.js 是一个运行时,类似于 Java 虚拟机,可将 JavaScript 代码转换为机器代码。它被全球成千上万的开发人员广泛用于开发 I/O 密集型 Web 应用程序,如视频流网站、单页应用程序和其他 Web 应用程序。

使用 Node.js,可以使用 JavaScript 作为后端。随着 JavaScript 已经成为前端开发的热门选择,围绕 MERN(MongoDB、Express、React 和 Node.js.)和 MEAN(MongoDB、Express、Angular 和 Node.js)堆栈的应用程序开发正越来越多地被开发人员采用。

为什么要学习Node.js?

Node.js可用于完全填充多种用途,如服务器端编程、构建 API 等。

  • Node.js用于使用 JavaScript 进行服务器端编程。因此,您可以使用单一编程语言 (JavaScript) 进行前端和后端开发。
  • Node.js 使用 async 和 await 技术在单个线程中实现任务的异步执行。这使得Node.js应用程序比多线程应用程序快得多。
  • Node.js 被用于构建命令行应用程序、Web 应用程序、实时聊天应用程序、REST API 等。

如何安装Node.js?

不同的操作系统需要不同的步骤来安装Node.js,请根据您安装的操作系统按照提供的方法进行操作。

Node.js的应用

Node.js用于构建不同类型的应用程序。下面列出了一些应用程序类型。

  • 流媒体应用程序:Node.js可以轻松处理实时数据流,其中需要按需下载资源,而不会使服务器或用户的本地计算机过载。Node.js还可以在服务器和客户端之间提供快速的数据同步,从而通过使用Node.js事件循环最大限度地减少延迟来改善用户体验。
  • 单页应用:Node.js 是 SPA 的绝佳选择,因为它能够有效地处理异步调用和繁重的输入/输出 (I/O) 工作负载。使用 Express.js 构建的数据驱动型 SPA 快速、高效且稳健。
  • 实时应用程序:Node.js 非常适合构建轻量级实时应用程序,如消息传递应用程序、界面、聊天机器人等。Node.js 具有基于事件的架构,因此具有出色的 WebSocket 支持。它促进了服务器和客户端之间的实时双向通信。
  • APIs:Node.js 的核心是 JavaScript。因此,处理JSON数据变得更加容易。因此,您可以使用 Node.js构建基于 REST 的 API。

这些是Node.js的一些用例。但是,它的使用并不局限于这些类型。公司越来越多地将Node.js用于各种应用。

Node.js应用实例

要在 Node.js 中创建基本的 Hello World 应用程序,请将以下单行 JavaScript 另存为 你好.js 文件。


 console.log("Hello World");

在存在 你好.js 文件的文件夹中打开 powershell(或命令提示符)终端,然后输入以下命令。“Hello World”消息显示在终端中。

PS D:\nodejs> node hello.js
Hello World

要使用 Node.js 创建“Hello, World!” Web 应用程序,请将以下代码另存为 你好.js:


http = require('node:http');
listener = function (request, response) {
	 // Send the HTTP header
	 // HTTP Status: 200 : OK
	 // Content Type: text/html
	 response.writeHead(200, {'Content-Type': 'text/html'});

	 // Send the response body as "Hello World"
	 response.end('<h2 style="text-align: center;">Hello World</h2>');
};

server = http.createServer(listener);
server.listen(3000);

// Console will print the message
console.log('Server running at http://127.0.0.1:3000/');

从命令行运行上述脚本。

C:\nodejs> node hello.js
Server running at http://127.0.0.1:3000/

该程序在本地主机上启动 Node.js 服务器,并在端口 3000 处进入侦听模式。现在打开一个浏览器,并输入 http://127.0.0.1:3000/ 作为 URL。浏览器会根据需要显示 Hello World 消息。

学习 Node.js 的先决条件

在继续本教程之前,您应该对 JavaScript 有基本的了解。由于我们将使用 Node.js 开发基于 Web 的应用程序,因此如果您对其他 Web 技术(如 HTMLCSSAJAX 等)有一定的了解,那就太好了。

Node.js 入门

本教程专为希望从基础到高级学习Node.js及其架构概念的软件程序员而设计。本教程将通过合适的示例让您充分了解 Node.js 的所有必要组件。

Node.js基础知识

在深入研究 nodejs 之前,您应该熟悉 nodejs 的基础知识,例如环境设置、REPL 终端、NPM、回调、事件、对象等。

Node.js模块

Node.js模块提供了一组函数,用于根据要求执行不同的操作。下面列出了所有重要的模块。

关于Node.js的常见问题

Node.js可以免费使用吗?

Node.js 是一个开源和跨平台的服务器框架。它可以在所有操作系统平台上完全免费使用——Windows、Linux、MacOS 等。

Node.js可以用于商业应用吗?

当然。Node.js 被广泛用于构建流媒体应用程序、SPA、API 等领域的商业应用程序。许多顶级公司,如 Twitter、Slack、Coursera 等在其应用程序中使用 Node.js。

我可以在任何托管服务上部署Node.js应用程序吗?

Node.js应用程序可以部署在流行的托管服务上,例如 AWS、Heroku、Hostiner 等。

Node.js是否支持多线程/并发?

运行时Node.js单个线程中执行 JavaScript。它通过 async/await 机制实现多个任务的异步执行,用于发出非阻塞 IO 请求。

Node.js有多快?

与Java,PHP,Python等语言相比。Node.js在执行速度方面提供了更好的性能。但是,对于低级编程应用程序,它不如 C/C++。

Node.js可以用于人工智能和机器学习吗?

NPM 包管理器确实具有某些用于机器学习库的包,例如 tensorflow.js 和 brain.js。然而,Python 和 Ruby 仍然是开发 AI 和机器学习应用程序的首选。