TypeScript Restful Starter 项目教程
1. 项目的目录结构及介绍
Typescript-restful-starter/
├── app/
│ ├── models/
│ └── ...
├── config/
│ └── ...
├── lib/
│ └── env/
├── test/
├── .env
├── .gitignore
├── Dockerfile
├── Index.ts
├── LICENSE
├── README.md
├── env.ts
├── nodemon.json
├── package-lock.json
├── package.json
├── tsconfig.json
└── tslint.json
app/
: 包含应用程序的主要代码,如模型、控制器等。config/
: 包含项目的配置文件。lib/
: 包含库文件,如环境配置文件。test/
: 包含测试文件。.env
: 环境变量配置文件。.gitignore
: Git忽略文件配置。Dockerfile
: Docker配置文件。Index.ts
: 项目启动文件。LICENSE
: 项目许可证。README.md
: 项目说明文档。env.ts
: 环境配置文件。nodemon.json
: Nodemon配置文件。package-lock.json
: 依赖锁定文件。package.json
: 项目依赖和脚本配置文件。tsconfig.json
: TypeScript配置文件。tslint.json
: TSLint配置文件。
2. 项目的启动文件介绍
Index.ts
是项目的启动文件,负责启动应用程序。以下是 Index.ts
的基本结构和功能:
// Index.ts
import { createConnection } from 'typeorm';
import { app } from './app';
import { config } from './config';
async function startServer() {
try {
await createConnection(config.database);
app.listen(config.app.port, () => {
console.log(`Server is running on http://${config.app.host}:${config.app.port}`);
});
} catch (error) {
console.error('Unable to connect to the database:', error);
}
}
startServer();
createConnection
: 连接数据库。app.listen
: 启动服务器并监听指定端口。config
: 包含应用程序和数据库的配置信息。
3. 项目的配置文件介绍
.env
文件是项目的环境变量配置文件,包含应用程序和数据库的配置信息。以下是 .env
文件的基本内容:
# APPLICATION
APP_NAME=restful-starter-server
APP_SCHEMA=http
APP_HOST=localhost
APP_PORT=3000
APP_SECRET=HltH3R3
# MySQL DATABASE
TYPEORM_CONNECTION=mariadb
TYPEORM_HOST=localhost
TYPEORM_PORT=3306
TYPEORM_USERNAME=root
TYPEORM_PASSWORD=root
TYPEORM_DATABASE=test
TYPEORM_SYNCHRONIZE=true
TYPEORM_LOGGING=error
TYPEORM_LOGGER=advanced-console
# PATH STRUCTURE
TYPEORM_ENTITIES=app/models/**/*.ts
TYPEORM_ENTITIES_DIR=app/models
APP_NAME
: 应用程序名称。APP_SCHEMA
: 应用程序协议(如 http 或 https)。APP_HOST
: 应用程序主机地址。APP_PORT
: 应用程序端口号。APP_SECRET
: 应用程序密钥。TYPEORM_CONNECTION
: 数据库连接类型。TYPEORM_HOST
: 数据库主机地址。TYPEORM_PORT
: 数据库端口号。TYPEORM_USERNAME
: 数据库用户名。TYPEORM_PASSWORD
: 数据库密码。TYPEORM_DATABASE
: 数据库名称。TYPEORM_SYNCHRONIZE
: 是否自动同步数据库结构。TYPEORM_LOGGING
: 数据库日志级别。TYPEORM_LOGGER
: 数据库日志记录器。TYPEORM_ENTITIES
: 数据库实体文件路径。TYPEORM_ENTITIES_DIR
: 数据库实体文件目录。