TypeStack Routing Controllers 入门指南
Routing Controllers 是一个用于 TypeScript 的库,它让你能够通过类和装饰器以声明式的方式创建结构化、可读性高的控制器,以便在 Express 或 Koa 框架中处理请求。
1. 项目目录结构及介绍
TypeStack Routing Controllers 的仓库并未直接展示其内部包的详细目录结构,但我们可以大致推断一个典型的使用该库的项目结构如下:
my-routing-app/
├── src/
│ ├── controllers/ # 控制器存放目录
│ │ └── UserController.ts # 示例控制器文件
│ ├── app.ts # 应用主入口文件
│ ├── index.ts # 可选,启动入口或导出应用实例的地方
│ ├── server.ts # 启动脚本
│ └── ...
├── node_modules/ # 依赖包
├── package.json # 项目配置和依赖列表
├── tsconfig.json # TypeScript 编译选项
└── README.md # 项目说明文档
- controllers: 存放所有定义了路由逻辑的控制器类。
- app.ts: 初始化 Routing Controllers 配置和设置Express/Koa的基本配置文件。
- server.ts: 通常用于启动服务器的脚本,可能会导入
app.ts的实例并监听端口。 - tsconfig.json: 包含了TypeScript编译器需要的配置,比如启用装饰器等特性。
2. 项目的启动文件介绍
server.ts 或者类似命名的文件是启动应用程序的关键。它通常包含了以下步骤:
// 导入相关依赖
import { createExpressServer } from 'routing-controllers';
import { UserController } from './src/controllers/UserController';
// 创建Express服务器,并注册所有的控制器
const app = createExpressServer({
controllers: [UserController], // 指定使用的控制器数组
});
// 启动服务器
app.listen(3000, () => {
console.log('Server is listening on port 3000.');
});
这段代码初始化了一个Express服务器,通过 createExpressServer 方法加载了指定的控制器,然后开始监听3000端口。
3. 项目的配置文件介绍
tsconfig.json
虽然不直接属于Routing Controllers的配置,但在使用TypeScript时,tsconfig.json 文件非常重要,确保支持装饰器和其他关键功能需设置以下项:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"lib": ["es6", "dom"],
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"esModuleInterop": true
},
"include": ["src/**/*"]
}
"emitDecoratorMetadata"和"experimentalDecorators"必须启用以支持装饰器。"esModuleInterop"帮助兼容CommonJS和ES模块。
Routing Controllers本身不需要特定的配置文件,它的配置主要是通过装饰器(如@Controller, @Get等)直接在你的控制器代码中进行的,而环境配置和服务容器配置(如果使用DI)可能在应用初始化部分进行。
通过以上介绍,你应该对如何组织项目、启动应用以及基本的配置有了一定的理解。具体应用时,还需参考官方文档和示例来深入学习。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



