Skip to content

Node(TS) · 02 核心能力 ​

真正不同:事件循环、非阻塞 I/O、单线程约束、与 Java 的边界。

1. 事件循环与非阻塞 I/O ​

Node 强在 等高连接、多等待,弱在 算得凶。

请求进来 → 注册 IO → 事件循环继续接别的请求
         ← IO 完成回调/Promise 续上
  • CPU 重活(大 JSON 狂转、图片重处理、加密扫目录)会 堵住整进程
  • 解决:worker 线程、子进程、或把重活丢给 Java/Python/专用服务

一句话:Node 强在等 I/O,弱在算得凶。


2. TypeScript 在服务端的意义 ​

收益说明
协作与重构安全带改字段名有编译器挡一程
与前端同构少写一份「口头约定」
文档感类型即注释(仍要补充运行时校验)

局限:

  • 编译通过 ≠ 运行正确(断言 as 可以骗人)
  • 性能与资源管理仍是运行时问题,类型帮不上

3. 适合什么 / 不适合什么 ​

适合不适合
BFF、聚合接口、WebSocket重 CPU、复杂强事务核心域(优先 Java)
Electron 本地服务、前端同构工具链「为了用 Node 而用 Node」重写整套 ERP
实时通知、轻网关无类型纪律的大团队长期硬扛中大型域
设备旁路、本地文件/串口桥强一致库存核心(可做前端,权威在 Java)

4. 我为什么用 Node(TS) ​

  1. 前端 Vue、桌面 Electron 已在栈内,本地服务与 BFF 同语言最省事
  2. 和 Java 分工:Java 管域与库表,Node 管靠近端的聚合与实时
  3. 不为炫技上 Nest 全家桶;场景简单就 Express/Fastify + TS

和 MES / 桌面的关系 ​

上位机(Electron)需要本地进程:采数、转协议、落临时文件——Node 很合适;
工单权威状态、追溯查询仍回 Java API。

下一篇:03 框架与生态