抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

摘要:本文介绍了Node是什么,与浏览器的区别,以及其优势和作用。

环境

Windows 10 企业版 LTSC 21H2
Node 18.14.0
NPM 9.3.1
NVM 1.1.12

1 介绍

Node是一个能够在服务器端运行JavaScript的开放源代码、跨平台JavaScript运行环境。

Node采用Google开发的V8引擎运行JS代码,使用事件驱动、非阻塞和异步I/O模型等技术来提高性能,可优化应用程序的传输量和规模。

简单来说,Node是一个让JavaScript运行在服务器端的开发平台,它让JavaScript的触角伸到了服务器端。

2 与JavaScript和浏览器的区别

JavaScript是一种高级编程语言,严格来说是指ECMAScript,不包含BOM和DOM。

浏览器提供了JavaScript的运行环境,包括全局对象、BOM、DOM等工具方便JavaScript脚本的解析和执行,浏览器是客户端的一种。

浏览器都有两个引擎:一个是渲染引擎,一个是JavaScript解析执行引擎。比如Chrome浏览器的V8引擎就是专门用来解析和执行JavaScript代码的。

Node是一个开源的、跨平台的JavaScript运行环境,允许JavaScript在服务器端运行。

以前的JavaScript只能在客户端运行,Node将Chrome浏览器里的V8引擎移植到自己的环境当中,在这个环境之上构建了一系列的底层API,提供了一些特定环境的编程接口。

虽然Node不提供BOM和DOM等客户端用到的API,但提供了丰富的服务端API,这些API是对ECMAScript的扩展,使得JavaScript能够在服务器端进行高效的开发工作。

3 优势

服务端的运行环境有很多,比如Tomcat,但Node具有其他运行环境没有的优势。

3.1 非阻塞I/O模型和事件驱动架构

Node采用非阻塞I/O模型和事件驱动架构,这是其核心优势之一。

在传统的服务器端编程中,当一个请求需要进行I/O操作时,采用的是阻塞I/O模型。例如,当读取文件时,服务器会阻塞当前线程,直到操作完成。

而Node通过非阻塞I/O模型,允许服务器在等待I/O操作完成时继续处理其他请求。例如,当请求需要读取文件时,Node不会阻塞线程,而是将读取操作交给底层系统,同时继续处理其他请求。当文件读取完成时,会触发一个事件,通知服务器继续处理该请求的后续逻辑。

这种非阻塞I/O和事件驱动的机制使得Node能够高效地处理大量并发请求,特别适合构建高性能的网络应用。

3.2 语言统一性

Node使用JavaScript作为开发语言,这意味着开发者可以在服务器端和客户端使用相同的语言进行编程。

这种语言的统一性降低了学习成本,使得前端开发者能够更容易地进入后端开发领域,也使得代码的复用性更高,开发者可以将一些公共逻辑在客户端和服务器端共享。

3.3 丰富的生态系统

Node使用NPM作为包管理器,NPM提供了庞大的JavaScript库和模块生态系统,开发者可以轻松找到所需的工具和框架。

3.4 轻量级和快速开发

Node的轻量级特性和丰富的框架使得开发者能够快速开发和部署应用。

4 作用

开发服务器应用:开发运行在服务器上的程序。

开发工具类应用:Webpack,Vite,Babel。

开发桌面端应用:Electron,VSCode,Figma,Postman。

5 官方文档

官方文档地址:https://nodejs.cn/api/v18/index.html

评论