@Controller、@Get、@Post、@Body 等 — 简洁的声明式装饰器 API,原生运行于 Elysia 之上。
nestelia 将每个装饰路由直接映射到 Elysia 处理器,在框架层提供完整的类型推断和模式验证。
import { Controller, Get, Post, Body } from 'nestelia'
import { CreateUserDto } from './dto'
@Controller('/users')
export class UsersController {
@Get()
findAll() {
return { users: [] }
}
@Post()
create(@Body() dto: CreateUserDto) {
return dto
}
}基于构造函数的依赖注入,通过 reflect-metadata 支持单例、瞬态和请求作用域。
用 @Injectable() 标记任意类并声明为提供者 — nestelia 在启动时自动解析完整的依赖关系图。
import { Injectable } from 'nestelia'
@Injectable()
export class UsersService {
private users: User[] = []
async findAll(): Promise<User[]> {
return this.users
}
async create(dto: CreateUserDto): Promise<User> {
this.users.push(dto)
return dto
}
}将控制器、提供者和导入封装到具有清晰显式结构的内聚可复用模块中。
一次调用 createElysiaApplication 即可连接整个依赖关系图并返回就绪的 Elysia 实例。
import 'reflect-metadata'
import { createElysiaApplication } from 'nestelia'
import { AppModule } from './app.module'
const app = await createElysiaApplication(AppModule)
app.listen(3000)
// Listening on http://localhost:3000NestJS 风格的开发体验,Elysia 级别的速度——装饰器和 DI 几乎零开销。
可选扩展包 — 按需安装。
nestelia/scheduler@Cron、@Interval、@Timeout — 基于 node-cron 的任务调度。
nestelia/microservicesTCP 和 Redis 传输,支持 @MessagePattern 和 @EventPattern。
nestelia/apollo代码优先的 GraphQL,支持 @Resolver、@Query、@Mutation、@Subscription。
nestelia/passportAuthGuard 和 PassportStrategy — 开箱即用的身份验证策略。
nestelia/cacheCacheModule,支持 @CacheKey、@CacheTTL 和可插拔缓存存储。
nestelia/rabbitmq通过 amqplib 支持 AMQP 的 @RabbitSubscribe 和 @RabbitRPC。
nestelia/testingTest.createTestingModule — 使用 mock 提供者进行隔离模块测试。
nestelia/graphql-pubsub基于 Redis 的 PubSub,用于实时 GraphQL 订阅。