Noomi 企业级 Node 框架开源项目

我要开发同款
匿名用户2020年07月22日
136阅读

技术信息

开源地址
https://gitee.com/fieldyang/noomi.git
授权协议
MIT

作品详情

Noomi一个基于ode的企业级框架,基于typescript开发,支持路由、过滤器、IoC、Aop、事务及嵌套、安全框架、缓存、集群。Noomi全面支持typescript,提供快捷简单的注解编写方式和丰富的配置处理能力。

核心模块

主要包括以下部分:

路由

路由作为web服务器与浏览器交互的桥梁,把js方法以RESTful方式暴露给客户端(浏览器)。

@Router()classClazz1{@Route('/path')method1(){...}...}过滤器

过滤器为路由进行过滤,可针对不同的路由,设置不同的过滤方法,对路由及请求参数进行预处理。

classClazz1{@WebFilter(path,priority)do(request,resopse){...returtrue/false;}}IoC

IoC(依赖注入)在需要依赖某个实例时,由注入器进行注入,不需要进行ew操作。所有实例通过实例工厂统一管理,便于实例重用,降低实例创建和释放的消耗。@Istace注解表示该类所创建的实例由实例工厂进行管理。@Iject注解表示把实例工厂中该实例名对应的实例注入到成员变量中。

@Istace('istace1')classClazz1{@Iject('istace2')relIstace:Clazz2;method1(){this.relIstace.***...}}Aop

把业务无关代码独立出来,做成切面,然后把切面包裹到业务代码上,通常应用场景为日志、事务等。

@Aspect()classClazz1{@Poitcut(["test1.*","test2.*"])testPoitcut(){}@Before("testPoitcut()")method1(){...}@After("testPoitcut()")method2(){...}@Aroud("testPoitcut()")method3(){...}@AfterThrow("testPoitcut()")method4(){...}@AfterRetur("testPoitcut()")method5(args){...}事务

事务主要针对数据库操作,事务操作可以在业务代码中编写,这样用有两个缺点:

事务代码与业务代码无关;如果一个事务方法调用了多个事务方法,当非第一个方法出现异常时,则会导致事务回滚错误。

实际开发中,我们不建议在业务代码中写事务相关代码,建议使用oomi事务,oomi支持事务及嵌套事务。

@Trasactioer()classClazz1{@Trasactioal()asycmethod1(){...}...}缓存

oomi提供了NCache类,可以提供内存和redis缓存统一处理,使用方便。

costcache=ewNCache({ame:'***',saveType:0/1,max_size:2000000,redis:'default'});集群

NCache支持redis缓存,web缓存和sessio都作为NCache的实例存在,所以可直接存放在redis上,从而实现多核和多机集群,我们建议采用PM2实现集群部署。

安全

oomi提供内置安全框架,用户只需提供对应的数据表和配置相应参数即可实现资源访问鉴权。

{"save_type":1,"redis":"default","expressios":["/*"],"dboptio":{},"auth_fail_url":"***","logi_url":"***"}

功能介绍

Noomi一个基于node的企业级框架,基于typescript开发,支持路由、过滤器、IoC、Aop、事务及嵌套、安全框架、缓存、集群。Noomi全面支持typescript,提供快捷简单的注...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论