Node.js、TypeScript 和 MongoDB 项目教程
1. 项目的目录结构及介绍
node-typescript-mongodb/
├── src/
│ ├── config/
│ │ └── db.ts
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ ├── services/
│ ├── app.ts
│ └── index.ts
├── package.json
├── tsconfig.json
└── README.md
- src/: 包含所有 TypeScript 源代码文件。
- config/: 存放项目配置文件,如数据库连接配置。
- controllers/: 存放控制器文件,处理业务逻辑。
- models/: 存放数据模型文件,定义数据结构。
- routes/: 存放路由文件,定义 API 路由。
- services/: 存放服务文件,处理复杂业务逻辑。
- app.ts: 应用程序的主要配置文件。
- index.ts: 项目的入口文件。
- package.json: 项目的依赖管理文件。
- tsconfig.json: TypeScript 编译配置文件。
- README.md: 项目说明文档。
2. 项目的启动文件介绍
index.ts
import app from './app';
import { connectDB } from './config/db';
const PORT = process.env.PORT || 3000;
connectDB().then(() => {
app.listen(PORT, () => {
console.log(`Server running on http://localhost:${PORT}`);
});
});
- 导入 app 模块: 从
app.ts
文件中导入应用程序实例。 - 导入数据库连接模块: 从
config/db.ts
文件中导入数据库连接函数。 - 设置端口: 从环境变量中获取端口,默认为 3000。
- 连接数据库并启动服务器: 调用
connectDB
函数连接数据库,成功后启动服务器并监听指定端口。
3. 项目的配置文件介绍
db.ts
import mongoose from 'mongoose';
export const connectDB = async () => {
try {
await mongoose.connect(process.env.MONGO_URI as string, {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
});
console.log('MongoDB connected');
} catch (error) {
console.error('MongoDB connection error:', error);
process.exit(1);
}
};
- 导入 mongoose 模块: 用于与 MongoDB 进行交互。
- 定义 connectDB 函数: 异步函数,用于连接 MongoDB 数据库。
- 连接字符串: 从环境变量中获取 MongoDB 连接字符串。
- 连接选项: 设置连接选项,如
useNewUrlParser
,useUnifiedTopology
,useCreateIndex
。 - 连接成功: 输出连接成功信息。
- 连接失败: 捕获错误并输出错误信息,程序退出。
tsconfig.json
{
"compilerOptions": {
"target": "ES6",
"module": "commonjs",
"outDir": "./dist",
"rootDir": "./src",
"strict": true,
"esModuleInterop": true
},
"include": ["src/**/*"]
}
- compilerOptions: TypeScript 编译选项。
- target: 指定编译目标为 ES6。
- module: 指定模块系统为 commonjs。
- outDir: 指定编译输出目录为
dist
。 - rootDir: 指定源代码目录为
src
。 - strict: 启用严格模式。
- esModuleInterop: 启用 ES 模块互操作。
- include: 指定包含的文件或目录。
通过以上介绍,您可以更好地理解和使用该项目。希望这篇教程对您有所帮助!