这是我参与「 第五届青训营 」伴学笔记创作活动的第 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
大型公司内的效率工具
现状:大部分场景在选型时,都值得考虑\
二 运行时结构
V8:JavaScript Runtime,诊断调试工具(inspector)
libuv:eventloop(事件循环),syscall(系统调用)
1 特点
'
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就非常有必要。