摘要:本文介绍了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。
条