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

38 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第4天

课程大致内容

  1. Node.js的应用场景
  2. Node.js运行时的结构
  3. 编写Http Server
Node.js的应用场景
  1. 前端工程化
  • Bundle: webpack, vite, esbuild, parcel
  • Uglify: uglify.js
  • Transplie: bablejs, Typescript
  • 其他语言加入竞争:esbuild, parcel, prisma
  • 现状:难以替代
  1. Web服务端应用
  • 学习曲线平缓,开发效率较高
  • 运行效率接近常见的编译语言
  • 社区生态丰富以及工具链成熟
  • 与前端结合的场景会有优势
  • 现状:竞争激烈,Node.js有自己独特的优势
  1. Eletron跨端桌面应用
  • 商务应用:vscode,slack,discord,zoom
  • 大型公司内的效率工具
  • 现状:大部分的场景在选型的时候,都值得考虑
  1. Node.js在字节
  • BFF应用,SSR应用
  • 服务端应用,比如说:头条搜索,西瓜视频,懂车帝
  • Electron应用:飞书
  • 每年新增:1000+Node.js应用
  1. Node.js运行的时候的结构--V8,libuv
  • V8:JavaScript Runtime,诊断调试工具
  • libuv:eventloop(事件循环),syscall(系统调用)
  • 举例:用node-fetch发起请求的时候
  1. Node.js运行的时候的结构--特点
  • 异步:当Node.js在执行异步操作的时候,会在响应返回后恢复操作,而不是阻塞线程并且占用额外的内存等待
  • 单线程:js单线程,实际上是js线程+uv线程池+v8任务线程池+v8 Inspector线程 优点:不用考虑多线程状态同步的问题,也就不需要锁,同时还能比较高效的利用系统资源,缺点:阻塞会产生更多负面影响,解决方法:多进程或者多线程
  • 跨平台:Node.js跨平台+js无需编译环境=开发成本低

编写Http server --安装Node.js

windows推荐nvm for windows或者是官方安装包,mac推荐使用nvm多版本管理