Skip to content

学习资源 ​

计划推荐的资源,按主题整理,并注明在哪一天用到;然后是 TaskFlow 项目本身:在哪里、怎么运行、学习期间怎么用它。

官方文档 ​

NestJS ​

官方文档 docs.nestjs.com 是每一章的参考依据。计划提到了 Overview、Techniques、Security 和 Recipes 这几个部分。后来 Techniques 部分被拆分到了 Application、Data 和 HTTP 里;旧的 /techniques/... 地址会重定向到新地址。本课程用得到的页面:

部分页面天
OverviewFirst steps、Controllers、Providers、ModulesJ1 至 J3
OverviewMiddleware、Exception filters、Pipes、InterceptorsJ6
OverviewGuards、Custom decoratorsJ8
FundamentalsCustom providers、Dynamic modules、Injection scopes、Circular dependencyJ3
FundamentalsLifecycle eventsJ7
FundamentalsTestingJ10
ApplicationValidation、SerializationJ2、J8
ApplicationConfiguration、LoggingJ7
ApplicationEvents、Task scheduling、QueuesJ9
DataTypeORMJ4、J5
HTTPVersioningJ2
SecurityAuthentication、Authorization、Encryption and HashingJ8
SecuritySecurity headers、CORS、Rate limitingJ11
RecipesPassportJ8
RecipesAsync local storage按请求保存上下文(陷阱)
ReliabilityHealth checks(Terminus)J11
OpenAPIIntroduction、CLI Plugin、Mapped TypesJ2、J11
CLIOverviewJ1
FAQRequest lifecycleJ6

官方课程 ​

计划推荐官方课程“NestJS Fundamentals”,从文档里的“Official courses”链接进入(courses.nestjs.com)。 计划说它是免费的;但在撰写本页时(2026 年 10 月),这门课是付费的,只有一节课免费开放。最接近的免费替代是文档里的 Fundamentals 部分,见上表。

TypeORM ​

typeorm.io,尤其是:

主题页面天
实体和列EntitiesJ4
查询Find options、Select Query BuilderJ4
连接选项Data source optionsJ4
关系Many-to-one / one-to-many、Eager and lazy relationsJ5
迁移Generating、Executing、RevertingJ5
事务TransactionsJ5

Node.js ​

生态工具 ​

TaskFlow 项目 ​

TaskFlow 是学习过程中构建的 API,位于本网站仓库的 examples/ 目录下。网站上的所有代码片段都来自它,被引用的片段一旦 消失,网站构建就会失败。项目能编译,通过 lint,27 个单元测试(行覆盖率 86.3%)和 8 个基于真实 PostgreSQL 的端到端 测试全部通过。Docker 镜像能构建并启动;GitLab 流水线没有实际运行过。

文件内容
README.md启动、脚本、Docker 操作顺序(含迁移)、目录结构
LEARNINGS.md每日学习日志模板(方法)
docker-compose.yml、.env.example本地环境(Docker Compose 与 .env)
Dockerfile、.gitlab-ci.yml镜像和流水线(J11)
.gitignore、.dockerignore不进 git、不进镜像的内容(node_modules、dist、coverage、除 .env.example 外的 .env*)
src/、test/代码,按领域组织(结构)

运行 API ​

bash
cd examples
cp .env.example .env.development
docker compose up -d                      # PostgreSQL + Adminer (http://localhost:8081)
npm ci
npm run migration:run
npm run seed                              # admin@taskflow.local / admin-password-dev
npm run start:dev                         # Swagger 在 http://localhost:3000/docs

这些命令不需要 export 任何变量:应用读取 .env.development,Compose 只在 app 容器上才要求 JWT_SECRET (说明)。种子数据创建的是开发账号;创建时可以用 SEED_ADMIN_PASSWORD 指定它的密码。

想在容器里运行 API,而不是用 npm run start:dev:export 一个真正的 JWT_SECRET,构建镜像,用 npm run migration:run:prod 执行迁移,然后启动 app profile(操作顺序)。

检查项目 ​

bash
npm run typecheck && npm run lint && npm test   # 编译、oxlint、单元测试
npm run test:cov                                # 带覆盖率阈值
cp .env.example .env.test                       # 然后设置 DB_PORT=5433、DB_NAME=taskflow_test、NODE_ENV=test
docker compose up -d db-test && npm run test:e2e

学习期间怎么用它 ​

  • 当参考答案:一天一天地重建 TaskFlow,卡住时和完成的项目对比。每章都会指出每一步对应哪个文件。
  • 当试验场:改动代码,看某个陷阱会造成什么后果(去掉一个 await、在测试库上把 synchronize 设为 true、去掉 @Exclude()),再跑测试。
  • 以后当参考:场景速查从一个具体需求出发,带你找到解决它的 TaskFlow 文件。