1972090
以下纯属个人观点,如有错误,欢迎交流。
业务背景:
1. 能进行 MQTT 消息订阅,然后进行数据存储,以及利用 MQTT 向前端进行消息推送
2. 构建 Restful Web Api
3. 公司现在仍在使用 MSSQL
Node 选择了弱类型 javacript 作为第一线编程语言,懂Javascript的人确实不少(不谈论懂的深度)。花了一周时间摸清了 Express 的骨架之后,node 的事件循环机制,js的异步编程思想,的确让我眼睛一亮,大叹一声原来还可以这样子做,并双击666。对于高IO和低CPU的需求来说,从 node 的角度来看,node 确实不错。
然而,在我看来,node + express 这套组合拳,打得却不是那么好。
首先,javascript 的弱类型性质,在服务器端这种相对前端比较严谨、容错性低的环境下,对生产环境来说,并不是每个会 js 的人都能够驾驭的住。仅仅对类型而言,强类型语言虽然对很多人来说有点限制,但也不是没有好处,例如在 VS2017 看到的 Node API 定义,全部都是 typescript,参数类型,返回类型,让人读起来确实一清二楚,例如 fs.readFile() 的定义:
其二,虽说 npm 拥有很强大的社区,有很多的开源组件,但是能够镇得住脚的组件又有多少,例如对 MSSQL 支持的组件就很少,能够完全支持 MSSQL 的基本没有。在默认的组件bodyParse中,文件上传在 StackFlow 上曝出不安全,但是官方仍在默认组件中使用。
Node 确实很优秀,但是围绕于 Node 的生态还需努力。