【第二届字节青训营 - 寒假前端场】Node.js与前端开发实战
Node.js
Node简介
Node.js 给 JavaScript 提供了一个平台,让 JavaScript 可以调用一些 C/C++ 的接口,这大大扩展了 JavaScript 的能力,进而使 JavaScript 有了后端开发的能力。
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层做出相应的响应。
Node.js的组成部分:
V8引擎:
V8 是目前商用的执行 JavaScript 最快的一个引擎,将 JavaScript 源代码变成本地代码并执行、维护 JavaScript 的调用栈,确保 JavaScript 函数的执行顺序、负责内存管理,为所有对象分配内存、垃圾回收,重复利用无用的内存、实现JS的标准库。
libuv: eventloop(事件循环),syscall(系统调用)
libuv的作用?
举例:用node-fetch 发起请求时
Node.js的特点:
1、异步I/O;
作用:当Node.js执行I/Q操作时,会在响应返回后恢复操作,而不是阻塞线程并占用额外内存等待。
2、单线程;
- JS单线程:
·实际:JS线程+uv线程池+V8任务线程池+V8 Inspector线程 - 优点:不用考虑多线程状态同步问题,也就不需要锁;同时还能比较高效地利用系统资源;
- 缺点:阻塞会产生更多负面影响·解决办法:多进程或多线程o1
3、跨平台;
Node.js 跨平台+JS无需编译环境(+Web跨平台+诊断工具跨平台)
=开发成本低(大部分场景无需担心跨平台问题),整体学习成本低
编写Http Server
1.安装Node.js
2.编写Http Server+Client,收发GET,POST请求
3.编写静态文件服务器
4.编写 React SSR 服务
5.适用inspector 进行调试、诊断
6.部署简介
分类:
青训营笔记
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战