Node.js | 青训营笔记

61 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天 一、本堂课重点内容:

  • Node.js的应用场景(why)
  • Node.js运行时的结构(what)
  • 编写Http Sever(how)
  • 延伸话题

二、详细知识点介绍:

  • Node.js的应用场景(why): image.png 前端工程化

image.png Web服务端应用:

image.png

  • Node.js运行时结构

image.png V8:JavaScript Runtime,诊断调试工具 libuv:事件循环,系统调用
特点: 1.异步I/O 在执行I/O操作时会在响应后恢复操作,而不是阻塞线程并占用额外内存等待

image.png 2.单线程

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

3.跨平台 (大部分功能、api)

  • Nodejs跨平台 js无需编译环境( Web跨平台 诊断工具跨平
    台)
  • =开发成本低(大部分场景无需担心跨平台问题),整体学习成本低

三、实践练习例子:

编写Http Sever 0.安装Nodejs
1. 编写Http Server + Clicnt, GET, POST请求
image.png

image.png

image.png

image.png 2编写静态文件服务器

image.png 3.编写 React SSR服务

image.png 4.使用inspector进行调试、诊断
5.部署简介

  • 部署要解决的问题
    • 守护进程:当进程退出时,重新拉起
    • 多进程: cluster便捷地利用多进程
    • 记录进程状态,用于诊断
  • 容器环境
    • 通常有健康检查的手段,只需考虑多核cpu利用率即可

四、课后个人总结:
Node.js的了解第一次是在Vscode上,第二次是关于个人博客的搭建但没有进行系统性的了解学习,对于其三个特点和实践还需要好好消化理解。