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

126 阅读2分钟

11

这是我参与「第四届青训营 」笔记创作活动的的第11天。本节课的主题是【Node.js与前端开发实战】,授课老师为欧阳亚东。

本篇笔记分别对课程中所讲的几个要点进行一些解读,如若有误,欢迎大家在评论区交流,指出不当之处。

01. Node.js的应用场景

  • 前端工程化;

    • Bundle:webpack,vite,esbuild,parcel
    • Uglifty:uglifyjs
    • 语法转换:Transpile:bablejs,typescript
    • 其他语言加入竞争:esbuild,parcel,prisma
    • 现状:难以替代
  • web服务端应用;

    • 学习曲线平缓,开发效率较高

    • 运行效率接近常见的编译语言

    • 社区生态丰富及工具链成熟(npm,V8 inspector)

    • 与前端结合的场景会有优势(SSR)

      • SSR是Server Side Render简称;页面上的内容是通过服务端渲染生成的,浏览器直接显示服务端返回的html就可以了。
    • 现状:竞争激烈,Node.js有自己独特的优势

  • electron跨端桌面应用;

    • 大部分场景在选型时,值得考虑
  • BFF:即 Backend For Frontend(服务于前端的后端),也就是服务器设计 API 时会考虑前端的使用,并在服务端直接进行业务逻辑的处理,又称为用户体验适配器。BFF作为中间件,是一种逻辑分层,使我们可以不考虑后端的迁移,后端改变可以在BFF层做出相应的响应。

02. Node.js运行时结构

image.png

V8引擎:

V8 是目前商用的执行 JavaScript 最快的一个引擎,将 JavaScript 源代码变成本地代码并执行、维护 JavaScript 的调用栈,确保 JavaScript 函数的执行顺序、负责内存管理,为所有对象分配内存、垃圾回收,重复利用无用的内存、实现JS的标准库。

libuv: eventloop(事件循环),syscall(系统调用)

libuv的作用?
举例:用node-fetch 发起请求时

03.编写HTTP Server

参考juejin.cn/post/690109…

04. 衍生话题