回顾整理Node

#node

我大概从 15 年开始使用 node,最早花了大概10 天吧。基于 ThinkJS(因为当时我们技术栈是 ThinkPHP,为了更好了解 ThinkPHP 就选择了这个) 写了第一版 blog,前端包括后台。ThinkJS + MongoDB,服务器是阿里云CentOS。功能主要就是文章的 CURD。

在之后创业过程中我们的产品里,所有的 mock 服务,全是本地自建 node,来完成 mock server(前端团队最多达到4人。)

之后忘记过了多久好像是 16 年吧,微服务很火。我就又用 Express 又起了个服务,做我blog 邮件订阅。相当于 ThinkJK 跑在 3000, Express 跑在 3001。 文章写好后,我可以通过一个按钮选择要不要发邮件通知所有订阅者。(不过后面发现发邮件的服务其实有并发限制挂了,就没维护了,否则起个队列发就好了)

而在最近,我又用 Next 把 blog 重构成了 SSR 渲染。

项目经验

在 17 年的时候临近毕业还陆续做了一些产品。使用 采用 express 作为中间件转发 Java 接口,通过 node 服务端渲染 HTML(多页应用)。用户不过没多少好像几百几千吧。也依旧可以独立完成部署,运行监控,错误钉钉报警。

在这些过程中积累的知识涵盖了

  • 购买域名
  • 万网配置域名
  • Nginx 反向代理
  • Nginx 常用 access/error日志查看
  • PM2 部署上线,PM2 热更新,PM2 日志查看定位服务器问题
  • htop 服务器运行状态查看
  • SSH 远程登录
  • MongoDB 的持久化启动(不开的话,SSH 断了数据库就关了)
  • rsync 同步文件
  • Node 项目的TS的支持(目前 TS 经验也快 2 年了)
  • 运行时错误钉钉实时报警

未来

虽然目前工作中都用不到 node,但是平时我也没有少关注 node 的一些发展动向和生态,比如node12 版本后的性能提升。比如现有的一些比较火的 node框架,typeorm,nest,egg,midway,之前也稍微感兴趣去看了 midway 和 nest 之间的依赖注入实现,等等

所以对于未来来说,我认为,直接让我上手 node 的业务应该也是 OK 的。

  • 不过还需要进一步学习正规的规范的大规模的 node 使用方式。涵盖部署,监控,报警,运维等。

  • 容器(Docker)集群(K8S)的方式部署 node。

  • 以及逐渐过渡到serverless。

PS: 在这之前应该可以尝试自己独立跑起 serverless,感受一下。只要有场景有项目,感觉都没有什么太大的问题吧