创建 koa-ts 原型项目,为新项目做技术准备

后续产品/项目需要使用无代码/低代码平台,目的是减少 web 界面应用的开发成本和时间。

nocobase是一个发展中的小型无代码/低代码开发平台。

作为备选方案之一,需要对它做一些技术准备,因此写了这个原型项目:MarshalW/koa-ts

MarshalW/koa-ts的作用是:

  • typescript 以前没写过,熟悉了语法,了解了编译 js 的过程,包括和 javascript/node.js 兼容的问题
  • 编写 dockerfile, 加入了对 node.js 程序需要 10s 退出的解决方式
    • docker 启动应用进程为 pid=1,如果不做处理无法正常退出 (docker stop ..),只能等待 docker 10s 超时强行终止
    • tinidumb-init 都可以解决 node.js 未处理带来的问题,这里选用 tini
  • 在 node.js 程序里使用了 exit-hook
    • 对进程退出信号做处理
    • 也解决了 docker 需要 10s 退出的问题
    • 因此如果使用 exit-hook 可不必在 docker 中使用 tini