与其他低代码平台比起来,Node-red对行业业务和数据结构的支撑非常弱。除了一些set、switch等基础语法节点之外,Node-red在语法方面基本上只有function节点可用,而后者只是一个Node.js的脚本编辑器。
这是因为其他主流的低代码平台(参见www.g2.com/categories/low-code-development-platforms的罗列)大都有相对单纯的行业应用或者类型应用背景,比如移动App、工作流、数据库应用等,而各个行业应用或者类型应用的数据结构和软件模式各有历史传承,是相对明确的。
而Node-red出身自相对底层、接近硬件、接近嵌入式开发环境、主要面向IoT。这些独特的根脚带来了Node-red的独特特性:以本人的了解,Node-red尚无移动App开发模板,同时对数据库、缓存系统、中间件系统、Web前端库等的支持也偏向于API这种比较底层的层面,就算有节点包装了一下,数量又少又简陋。用Node-red开发后端服务吧,高可用方面就难做;用Node-red开发前端吧,原生的UI Dashboard对Angular的封装简直让开发者疯掉。
Node-red最擅长的,还是流式程序的一头一尾,也就是各类数据入口和出口。基于强悍的libuv库,这一头一尾的数据,Node-red的确处理得很好。个人感觉用原生Node-red(如果不借助外扩节点)做如下开发的确比较爽,一是快速搭建Restful接口的服务,二是做软件网关来用。
总之,Node-red在缺乏特定业务带来的数据结构和软件模式的同时,也有了相对比较大的开发自由度。缺乏套路,所以有了自由。一体两面,利弊相依,全看使用者怎么看了。