@forinda/ kickjs (英语)
现代类型安全后端框架,由Vite提供动力. 为开发者经验所建,可按需要插入: DI,模块,一个打出的请求上下文,验证和生成器,在Express(默认),Fastify或h3上,在Workers, Bun和Deno上通过一个网络标准条目.
安装
npx @forinda/kickjs-cli new my-api && cd my-api && pnpm dev
或者把它添加到现有的项目中:
pnpm add @forinda/kickjs express reflect-metadata zod
pnpm add -D @forinda/kickjs-cli @forinda/kickjs-vite
快速实例
// src/modules/users/user.controller.ts
import { Autowired, Controller, Get, Post, Service, type Ctx } from '@forinda/kickjs'
import { z } from 'zod'
@Service()
export class UserService {
list() {
return [{ id: '1', name: 'Alice' }]
}
}
@Controller()
export class UserController {
@Autowired() private readonly users!: UserService
@Get('/')
list() {
return this.users.list()
}
@Post('/', { body: z.object({ name: z.string().min(1) }) })
create(ctx: Ctx<KickRoutes.UserController['create']>) {
ctx.created({ id: '2', name: ctx.body.name })
}
}
// src/index.ts
import 'reflect-metadata'
import { bootstrap, defineModule, defineModules } from '@forinda/kickjs'
import { UserController } from './modules/users/user.controller'
const UserModule = defineModule({
name: 'UserModule',
build: () => ({ routes: () => ({ path: '/users', controller: UserController }) }),
})
export const app = await bootstrap({ modules: defineModules().mount(UserModule()) })
GET /api/v1/users 返回列表. KickRoutes 来自 kick typegen,哪个 kick dev 为你跑步。 要使用另一个引擎, 请通过 runtime: fastifyRuntime() (从) @forinda/kickjs/fastify)或(或) h3Runtime() 改为 bootstrap()。 。 。 .
文档
kickjs.app (英语)。好的起点:
- 开始
- 模块, (中文(简体) ), 主计长, (中文(简体) ), 依赖性注射
- HTTP 运行时间, (中文(简体) ), 边际部署
- 上下文装饰器, (中文(简体) ), 适配器, (中文(简体) ), 插件
- BYO 食谱: auth, GraphQL, OpenTeleometry, cron, 邮件, 多租借
许可证
麻省理工学院