Node.js浅入门 | 青训营笔记

150 阅读3分钟

Node.js浅入门 | 青训营笔记

这是我参与「第五届青训营 」伴学笔记创作活动的的第15天

Node.js并不是一种前端开发技术,它更多地被用于后端开发。然而,由于Node.js具有高效、易学、易用的特点,因此它在前端开发中也有着广泛的应用。

什么是Node.js

  • Node.js 是一个开源和跨平台的 JavaScript 运行时环境
  • Node.js 在浏览器之外运行 V8 JavaScript 引擎(Google Chrome 的内核)。
  • 它使得JavaScript可以编写后端程序,让其实现其他后端语言能实现的绝大部分功能。

在前端开发中,Node.js可以用于构建工具链,如:

  • 前端自动化:Node.js可以用于构建前端自动化流程,以提高开发效率。

  • 前端工具:Node.js可以开发前端工具,如编译器、打包工具等,以支持前端开发。

  • 构建系统:Node.js可以用于构建系统,它可以帮助开发人员编译、部署前端代码。

总的来说,Node.js对前端开发具有重要的支持作用,它可以帮助开发人员提高效率,实现更高效的前端开发。

Node.js的应用场景

  • 前端工程化

    • Bundle(构建):webpack,vite,esbuild,parcel
    • Uglify(压缩):uglifyjs
    • Transpile(语法转换):bablejs,typescript
    • 其他语言加入竞争:esbuild,parcel,prisma
    • 现状:难以替代
  • Web服务端应用(即后端服务)

    • 学习曲线平缓,开发效率较高
    • 运行效率接近常见的编译语言
    • 社区生态丰富工具链成熟(npm,V8 inspector)
    • 与前端结合的场景会有优势(SSR)
    • 现状:竞争激烈,Node.js有自己独特的优势
  • Electron跨端桌面应用

    • 商业应用:vscode,slack,discord,zoom
    • 大型公司内的效率工具
    • 现状:大部分场景在选型的时候都值得考虑
  • Node.js在字节

    • BFF应用、SSR应用,距离:Modern.js
    • 服务端应用:头条搜索,西瓜视频,懂车帝
    • Electron应用:飞连,飞书
    • 每年新增1000+Node.js应用

Node.js运行时结构

Node.js运行时结构是一个事件驱动、非阻塞I/O的平台,它通过Google V8 JavaScript引擎执行JavaScript代码,并使用内置的C++代码实现了许多功能。

Node.js运行时结构的主要组成部分如下:

  1. 引擎:用于执行JavaScript代码的核心组件,通常是Google V8 JavaScript引擎。
  2. 事件循环:Node.js采用事件驱动、非阻塞I/O模型,事件循环是Node.js运行时结构的核心。它不断监听事件队列,并执行对应的回调函数。
  3. 文件系统:Node.js提供了一个文件系统模块,可以让开发人员读写文件。
  4. 网络:Node.js提供了一个网络模块,可以让开发人员创建服务器,处理HTTP请求。
  5. 模块系统:Node.js采用CommonJS规范,提供了一个模块系统,可以让开发人员编写和组织代码。

image.png

  • 特点
  1. 事件驱动:Node.js采用事件驱动、非阻塞I/O的模型,事件循环是Node.js运行时结构的核心。它不断监听事件队列,并执行对应的回调函数。
  2. 非阻塞I/O:Node.js中的所有I/O操作都是非阻塞的,可以有效避免请求的阻塞,提高系统的吞吐量。
  3. 轻量级:Node.js运行时结构很小,不占用大量系统资源,可以有效提高系统的效率。
  4. 高性能:Node.js运行时结构通过V8 JavaScript引擎执行代码,执行速度很快,可以有效提高应用程序的性能。
  5. 模块化:Node.js采用CommonJS规范,提供了一个模块系统,可以让开发人员编写和组织代码。
  6. 跨平台:Node.js运行时结构可以在多种平台上运行,包括Windows、Linux、Mac OS X等,可以让开发人员轻松实现跨平台开发。

安装node.js

  • Mac,Linux推荐使用nvm。多版本管理

  • Windows nvm4w 或官方安装包

  • node.js下载

  • 安装慢,安装失败的情况,设置安装源

    • NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node nvm install 16