一、什么是node?

是基于chrome v8引擎开发的一个c++程序,是一个 JS 运行环境 — 一个js语言解释器
特点:单线程,非阻塞I/O, 事件驱动

二、对于前端,node能做什么?

  1. 静态资源托管
  2. SSR
  3. BFF-Backend for Frontend

image.png
image.png

  • 多端应用
    我们在设计 API 时会考虑到不同设备的需求,也就是为不同的设备提供不同的 API,虽然它们可能是实现相同的功能,但因为不同设备的特殊性,它们对服务端的 API 访问也各有其特点,需要区别处理。
  • 服务聚合
    随着微服务的兴起,原本在同一个进程内运行的业务流程被拆分到了不同的服务中。这在增加业务灵活性的同时,也让前端的调用变得更复杂。BFF 的出现为前端应用提供了一个对业务服务调用的聚合点,它屏蔽了复杂的服务调用链,让前端可以聚焦在所需要的数据上,而不用关注底层提供这些数据的服务。
  • 非必要,莫新增
    我们在看到 BFF 带来的各种好处的同时,也要注意到它所带来的代码重复和工作量增加方面的问题。如果与已有 BFF 功能类似,且展现数据的要求也相近的话,一定要谨慎对待新增 BFF 的行为。因此,建议非必要,莫新增
  1. 微服务

微服务是一种用于构建应用的架构方案。微服务架构有别于更为传统的单体式方案,可将应用拆分成多个核心功能。每个功能都被称为一项服务,可以单独构建和部署,这意味着各项服务在工作(和出现故障)时不会相互影响。
image.png
在线购物时的情景。您应该使用了网站上的搜索栏来浏览产品。这个搜索功能就是一项服务。您可能也看到了相关产品推荐,这些推荐项均来自顾客偏好数据库。而这也是一项服务。您有将商品添加到在线购物车中吗?没错,这又是另一项服务。
所以说,微服务就是应用的各项核心功能,而且这些服务均可独立运行。

三、Express Demo

四、错误处理

  1. try catch
  2. 全局捕获

五、常用工具 - node版本管理

  1. nvm https://segmentfault.com/a/1190000018110318
  2. docker https://docs.docker.com/get-started/overview/

    六、结尾

    推荐从egg.js上手
    egg.js参考资料:
    https://github.com/eggjs/awesome-egg
    https://eggjs.org/zh-cn/