【第二届字节青训营 - 寒假前端场】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的组成部分:

png

V8引擎:

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

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

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

Node.js的特点:

1、异步I/O;

作用:当Node.js执行I/Q操作时,会在响应返回后恢复操作,而不是阻塞线程并占用额外内存等待。
png

2、单线程;

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

3、跨平台;

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

编写Http Server

1.安装Node.js

2.编写Http Server+Client,收发GET,POST请求

png

png

3.编写静态文件服务器

4.编写 React SSR 服务

5.适用inspector 进行调试、诊断

6.部署简介

posted @   进击の小白们  阅读(132)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
xxx2745天23小时12分13秒
点击右上角即可分享
微信分享提示