Node.js与前端开发实战 | 青训营笔记

117 阅读2分钟

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

本堂课主要讲解的重点内容

Node.js的应用场景 (why)
Node.js运行时结构 (what)
编写Http Server (how)

对讲解的部分知识点进行介绍

一 应用场景

1 前端工程化

Bundle:webpack,vite,esbuild,parcel
Uglify:uglifyjs
Transpile:bablejs,typescript
其他语言加入竞争:esbuild,parcel,prisma\

2 Web服务端应用

学习曲线平缓,开发效率较高
运行效率接近常见的编译语言
社区生态丰富及工具链成熟(npm,V8 inspector)
与前端结合的场景会有优势(SSR)\

3 Electron跨端桌面应用

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

二 运行时结构

图片.png V8:JavaScript Runtime,诊断调试工具(inspector) libuv:eventloop(事件循环),syscall(系统调用)

1 特点

图片.png'

2 单线程

JS单线程实际:JS线程+uv线程池+V8任务线程池+V8 Inspector线程

  • 优点:不用考虑多线程状态同步问题,也就不需要锁;同时还能比较高效地利用系统资源。
  • 缺点:阻塞会产生更多负面影响
  • 解决办法:多进程或多线程

3 跨平台

三 编写HTTP Server

1 安装Node.js

  • Mac,Linux推荐使用nvm,多版本管理随时切换版本更方便实际开发使用。
  • Windows推荐nvm4w或是官方安装包。

安装慢,安装失败的情况,设置安装源: NVM_NODEJS_ORG_MIRROR=npmmirror.com/mirrors/nod… nvm install 16

个人总结

因为个人时间安排问题,没法很快将课程全部内容以笔记的形式展示,后续可能会继续补充。
在该课程中,接触到了node.js,学习了一些相关知识点以及使用方式。作为一个前端人,完整学习一门后端语言有点点不切实际(对自己而言,曾经为了校内课程项目还去自学了django,初学不难,但想深入确实没有那么多精力和时间),这种时候node.js就非常有必要。