Node.js Express Mongoose TypeScript Boilerplate 使用教程
1. 项目介绍
node-express-mongoose-typescript-boilerplate
是一个用于创建生产就绪的 RESTful API 的样板项目。它结合了 Node.js、Express、Mongoose 和 TypeScript,提供了一个完整的开发框架,帮助开发者快速搭建和部署后端服务。
该项目包含了许多内置功能,如 JWT 认证、请求验证、单元和集成测试、持续集成、Docker 支持、API 文档生成、分页等。通过使用这个样板项目,开发者可以专注于业务逻辑的实现,而不必从头开始配置项目。
2. 项目快速启动
2.1 创建项目
你可以通过以下命令快速创建一个新项目:
npx create-nodejs-ts-app <project-name>
或者使用 npm:
npm init nodejs-ts-app <project-name>
2.2 手动安装
如果你更喜欢手动安装,可以按照以下步骤进行:
-
克隆仓库:
git clone --depth 1 https://github.com/saisilinus/node-express-mongoose-typescript-boilerplate.git cd node-express-mongoose-typescript-boilerplate
-
安装依赖:
yarn install
-
设置环境变量:
cp .env.example .env # 打开 .env 文件并根据需要修改环境变量
2.3 运行项目
在开发环境中运行项目:
yarn dev
在生产环境中运行项目:
yarn start
3. 应用案例和最佳实践
3.1 认证与授权
该项目内置了 JWT 认证功能,可以轻松实现用户注册、登录、刷新令牌等功能。以下是一个简单的用户注册示例:
import express from 'express';
import { registerUser } from './controllers/auth.controller';
const router = express.Router();
router.post('/register', registerUser);
export default router;
3.2 错误处理
项目提供了一个集中式的错误处理机制,开发者可以在控制器中捕获错误并将其传递给错误处理中间件。以下是一个示例:
import { catchAsync } from './utils/catchAsync';
const controller = catchAsync(async (req, res) => {
// 这里可能会抛出错误
throw new Error('Something went wrong');
});
3.3 API 文档
项目使用 swagger-jsdoc
和 swagger-ui-express
自动生成 API 文档。启动服务器后,访问 http://localhost:3000/v1/docs
即可查看 API 文档。
4. 典型生态项目
4.1 Docker 支持
该项目支持 Docker,可以轻松地将应用容器化。以下是一些常用的 Docker 命令:
# 在开发模式下运行 Docker 容器
yarn docker:dev
# 在生产模式下运行 Docker 容器
yarn docker:prod
4.2 持续集成
项目集成了 GitHub CI,可以在每次提交代码时自动运行测试和代码质量检查。
4.3 代码质量
通过使用 ESLint 和 Prettier,项目确保了代码的一致性和质量。开发者可以使用以下命令进行代码检查和格式化:
# 运行 ESLint
yarn lint
# 修复 ESLint 错误
yarn lint:fix
# 运行 Prettier
yarn prettier
# 修复 Prettier 错误
yarn prettier:fix
通过以上步骤,你可以快速上手并使用 node-express-mongoose-typescript-boilerplate
项目,构建高效、可靠的后端服务。