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

38 阅读1分钟

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

一.Node.js的应用场景

1.前端工程化的场景。

早期 ajax, jquery 比较流行的时候,我们直接在页面中引入需要的 lib 即可。后续随着模块化、transpile 逐渐成熟、需求逐渐增多,对后端能力的需求也逐渐强烈。也正是 Node.js 赋予了 js 开发者在浏览器外运行代码的能力,加速催生了这些项目的出现。

2.Web 服务端应用

也就是后端服务。这里我们特别提一下 vercel 这家公司

  1. Electron 应用

这里不只是指 electron,还包括 nw.js.. ; 这个场景在较大的企业里面非常常见。

4.字节运用现状

二.Node.js运行时的结构

V8: JavaScript Runtime,诊断调试工具(inspector)

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

举例:用node- fetch发起请求时,

特点:

1.异步IO

当Node.js执行IO操作时,会在响应返回后恢复操作,而不是阻塞线程

并占用额外内存等待

2.单线程

实际:

JS线程+uV线程池+V8任务线程池+V8Inspector线程

优点:

不用考虑多线程状态同步问题,也就不需要锁;同时还能比较高效地利用系统资源;

缺点:

阻塞会产生更多负面影响

解决办法:

多进程或多线程

3.跨平台

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

三.编写Http Server

1.安装Node.js

2.Http Server

3.Http Client

4.Promisify

5.静态文件

6.React SSR

7.Debug

8.部署