nestjs为什么不火

JavaScript027

nestjs为什么不火,第1张

因为操作不简便

Nest.js是用于构建高效且可伸缩的服务端应用程序的渐进式Node.js框架。支持Typescript、面向AOP编程、支持typeorm、Node.js版的spring、构建微服务应用。

Nest.js是用于构建高效且可伸缩的服务端应用程序的渐进式Node.js框架。支持Typescript、面向AOP编程、支持typeorm、Node.js版的spring、构建微服务应用。

最近接触了 nestjs ,发现这个项目也用到依赖注入。

和公司现在运行的老项目很像。

主要由 zazeninjector + koa + typeorm 组成

通过装饰器 autoinject 进行装饰

比如 在 account_facade 用到, account_service:IAccount.AccountService 则直接作为 account_facade 这个方法的参数即可

熟悉 java 的人看起来,会感觉就像 spring boot 那一套,但并不是完全像

相比公司老项目,nestjs 相对更为智能,创建新的模块也更为方便些。

会出现如下文件及选择

包管理工具具体用哪个就看个人习惯了

http://localhost:3000/ 会出现 Hello World!

nestjs 还提供了很多功能。会一点点了解。虽然不大可能用于公司现在的项目了。但是后续了解nestjs 的实现,玩一玩还是可以的

这里我使用的nrwl来初始化nest项目, nest cli 之类同理可以初始化项目出来

nestjs提供connectMicroService 和createMicroSerivice.

两者的不同点是在connectMicroService 是以一个socket主服务的额外服务存在.

由于nestjs支持多种服务化运行, 如http grpc 等等, socket主服务大部门可能大部份以http形式启动运行.

createMicroSerivice 是主服务就是微服务, 初入nestjs可以看下两个函数的api, 它们是非常不同的.

现在做测试, 用connectMicroService ,

好, 起了一个5557的tcp微服务.

TCP的TCP服务其实是一个自定义的带长度的JSON数据SOCKET

传输格式为 len(int)#(char)json_str(string) 中间的#是固定的.

大致形式为 13#{"foo":"bar"} 这里json格式是任意写的, 实际上json有固定的字段.

{"partern": any, "data":any, "id"?:number } partern是一个可以序列化的object或字符串, 用于生成token, 生成token时key会做递归排序. id是可选的, 当id传了时, tcp服务端会返回一个销毁的消息

他大致像{"partern": "destroy", , "id":20 }

所有的微服务需要映射到 类似 {"partern": "destroy", }的数据结构, 当然自己写类不用 partern 也是可行的, 自已的Controller注解不要继承于ParternMessage即可.

其他基于TCP的二进制数据转到对像时, 这个对像最好继承{"partern": any, "data":any, "id"?:number }, key值存在即可, partern 还要当token用, 用于Controller映射到请求