NestJS 启动器
用于快速开发的 NestJS MVC 样板,采用经过实战检验的标准。
技术栈
包含以下特性:
- 示例 REST 和 GraphQL 模块,使用 TypeORM 进行数据库操作,如 https://docs.nestjs.com/ 所示
- 集成 Next.js 用于前端 React 开发(教程文章)
- 开箱即用的 GraphQL 类型化查询和结果(教程文章)
- 通过 Passport.js 进行身份验证,包括社交提供商(教程文章),AWS Cognito(教程文章),以及用于 REST 和 GraphQL 的 JWT 策略
- Docker 配置
- Typescript,ESLint
- 通过 GitHub Actions 进行 CI
- 使用 nestjs-console 运行任务(如数据库填充)
- 使用 Jest 进行单元测试和集成测试
- Heroku 部署设置
- Google Analytics 4
使用方法
以下部署可能处于休眠状态,打开时可能需要一分钟才能上线。
开发
cp .env.example .env
docker-compose up
docker-compose exec web yarn lint
docker-compose exec web yarn test
docker-compose exec web yarn test:request
docker-compose exec web yarn build
docker run -it -v $PWD:/e2e -w /e2e --network="host" --entrypoint=cypress cypress/included:12.2.0 run
功能
通过 Nest 的 REST 端点
通过 Nest 的 JWT 保护的 REST 端点
GraphQL playground(query WhoAmI
受 JWT 保护)
query Public {
things {
id
name
}
users {
id
provider
}
}
# 添加 Header: { "Authorization": "Bearer <token>" }
query Private {
whoAmI {
id,
provider,
providerId,
username,
name
}
orders {
id
alias
thing {
name
}
}
}
mutation createOrder {
createOrder(alias: "myname", thingName: "this is a thing you can order") {
id
alias
}
}
Cognito 认证(重定向到托管的 Cognito UI)
Google 认证
Next.js 页面
JWT 保护的 Next.js 页面
实用命令
Nest CLI:
docker-compose exec web yarn nest -- --help
TypeORM CLI:
docker-compose exec web yarn typeorm -- --help