这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天 一、本堂课重点内容:
- Node.js的应用场景(why)
- Node.js运行时的结构(what)
- 编写Http Sever(how)
- 延伸话题
二、详细知识点介绍:
- Node.js的应用场景(why):
前端工程化
Web服务端应用:
- Node.js运行时结构
V8:JavaScript Runtime,诊断调试工具
libuv:事件循环,系统调用
特点:
1.异步I/O
在执行I/O操作时会在响应后恢复操作,而不是阻塞线程并占用额外内存等待
2.单线程
- 实际:JS线程+uv线程池+v8任务线程池+v88 Inspector线程
- 优点:不用考虑多线程状态同步问题,也就不需要锁;同时还能比较高效地利用系统资源
- 缺点:阻塞会产生更多负面影响
- 解决办法:多进程或多线程
3.跨平台 (大部分功能、api)
- Nodejs跨平台 js无需编译环境( Web跨平台 诊断工具跨平
台) - =开发成本低(大部分场景无需担心跨平台问题),整体学习成本低
三、实践练习例子:
编写Http Sever
0.安装Nodejs
1. 编写Http Server + Clicnt, GET, POST请求
2编写静态文件服务器
3.编写 React SSR服务
4.使用inspector进行调试、诊断
5.部署简介
- 部署要解决的问题
- 守护进程:当进程退出时,重新拉起
- 多进程: cluster便捷地利用多进程
- 记录进程状态,用于诊断
- 容器环境
- 通常有健康检查的手段,只需考虑多核cpu利用率即可
四、课后个人总结:
Node.js的了解第一次是在Vscode上,第二次是关于个人博客的搭建但没有进行系统性的了解学习,对于其三个特点和实践还需要好好消化理解。