你认为Vonajs提供的这些特性会比Nestjs更好用吗?
Nestjs是一款非常强大的Node.js框架,而且入门非常容易,但是随着项目的增长,各种不便之处就会显现出来,许多代码书写起来不再像项目刚启动时直观。而Vonajs是一款全新的Node.js框架,提供了许多创新性的架构设计,让我们在开发任何规模的项目时,代码都能保持直观和优雅。下面,我们一起来看看这些特性,是否真的比nestjs更好用?
特性
| 特性 | Vona | Nest |
|---|---|---|
| Typescript | ✅ | ✅ |
| 模块化体系 | ✅scope对象:config/locale/service | ✅ |
| 全量esm模块 | ✅ | ❌commonjs |
| Ioc容器 | ✅依赖注入、依赖查找 | ✅ |
| bean配置 | ✅ | ❌ |
| bean全局单例 | ✅节约内存 | ❌ |
| 多租户 | ✅ | ❌ |
| 多数据库、多数据源 | ✅ | ✅ |
| 数据库事务 | ✅ | ✅ |
| cli命令 | ✅ | ✅ |
| 菜单命令 | ✅ | ❌ |
| env:环境变量 | ✅多维配置,开箱即用 | ✅ |
| config | ✅多维配置,开箱即用 | ✅ |
| 单文件打包、集群部署 | ✅开箱即用 | ❌ |
| aop:前置切面: Middleware/Guard/Pipe/Interceptor/Filter | ✅系统中间件、全局中间件、局部中间件 | ✅ |
| aop:主体切面: @AopMethod | ✅ | ❌ |
| aop:客体切面: @Aop | ✅ | ❌ |
| ssr聚合 | ✅ | ❌ |
| demo练习场 | ✅ | ❌REPL |
Typescript
Typescript现在已经是开发Node.js框架的标配技能了,勿须多言。
模块化体系
Vona和Nest都提供了模块化体系,而Vona还提供了scope机制。也就是为每个模块提供了一个scope对象,通过scope对象可以非常方便的访问模块的各类资源和能力。限于篇幅,这里仅对config/locale/service加以举例说明:
1. config
首先,在模块的config文件中添加配置项:
src/module/demo-student/src/config/config.ts
export function config() {
return {
+ title: 'hello world',
};
}