初识Node.js | 青训营笔记

46 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天。

本篇笔记是对今天青训营的直播课程Node.js与前端开发实战课程的归纳总结及个人感悟。

一、Node.js的应用场景

  1. 前端工程化
  • 早期ajax、jquery比较流行,直接在页面中引入lib即可
  • 后续模块化、transpile逐渐成熟、需求逐渐增多,对后端能力需求逐渐强烈(在浏览器外运行代码的需求)
  1. Web服务端应用
  • 也就是后端服务
  • 关于vercel这家公司
  1. Electron跨端桌面应用
  • 包括electron、nw.js

二、Node.js运行时结构

  • V8: JS Runtime, 诊断调试工具(inspector)
  • libuv:eventloop(事件循环)syscall(系统调用)

特点

  • 异步I/O:当Node.js执行I/O操作时,会在响应返回后恢复操作,而不是阻塞线程并占用额外内存等待
  • 单线程:
    • 优点:不用考虑多线程状态同步问题,也就不需要锁;同时比较高效地利用系统资源
    • 缺点:阻塞会产生更多负面影响
  • 跨平台:Node.js跨平台+JS无需编译环境

三、实战:编写Http Server