NestJS 实现的 RealWorld 示例应用

NestJS 实现的 RealWorld 示例应用

项目地址:https://gitcode.com/lujakob/nestjs-realworld-example-app

Node/Express/Mongoose Example App

该项目是一个遵循 RealWorld API 规范的 NestJS 示例应用,它包含了真实世界中的各种应用场景,如 CRUD 操作、身份验证和高级设计模式等。它旨在帮助开发者理解和实践后端开发,并能够与其他符合相同规范的前端应用无缝对接。

项目安装与启动

首先,通过 Git 克隆项目仓库:

git clone https://github.com/lujakob/nestjs-realworld-example-app.git

然后进入项目目录并安装依赖:

cd nestjs-realworld-example-app
npm install

接下来,根据你的数据库选择(TypeORM 或 Prisma),复制配置文件并设置 JSON Web Token 的密钥。对于 TypeORM,请执行以下操作:

cp src/config.ts.example src/config.ts

在为数据库创建表之后,你可以通过运行以下命令来启动应用程序:

npm start

访问 http://localhost:3000/api/articles 来测试 API 是否正常工作。

数据库抽象层

项目提供了两种不同的数据库抽象方案:TypeORM 和 Prisma。默认分支使用 TypeORM 配合 MySQL 数据库。若要切换到 Prisma,你需要从 prisma 分支克隆代码并按照 Prisma 文档进行配置。

TypeORM

  1. 创建名为 nestjsrealworld 的 MySQL 数据库。
  2. 复制 ormconfig.json.example 文件并设置数据库连接信息。
  3. 应用更改并启动应用,TypeORM 将自动创建所有实体对应的表。

Prisma

  1. 更改为 prisma 分支。
  2. 创建一个新的 MySQL 数据库 nestjsrealworld-prisma
  3. 复制 prisma/.env.example 并设置数据库连接信息。
  4. 运行迁移以创建数据库表和生成 Prisma 客户端。

NPM 脚本

  • npm start: 启动应用
  • npm run start:watch: 开发模式下启动应用
  • npm run test: 运行 Jest 测试
  • npm run start:prod: 生产环境构建应用

API 规范

这个应用严格遵守 RealWorld API 规范,这意味着你可以使用任何支持该规范的前端框架与之配合,无需担心兼容性问题。

认证

应用使用 JSON Web Token (JWT) 进行身份验证。每个请求都通过 Authorization 头部传递 Token(使用 Token 方案)。JWT 中间件负责令牌的有效性和认证处理。

Swagger API 文档

为了提供详细的 API 文档,此示例应用集成了 NestJS 的 Swagger 模块。了解更多关于 NestJS Swagger 和 Swagger 的信息,请访问 NestJS SwaggerSwagger 官网

总的来说,无论你是初学者还是经验丰富的开发者,这个 NestJS 实例应用都是一个绝佳的学习和实践平台。它覆盖了现代 web 开发的重要方面,包括 RESTful API 设计、数据库集成以及安全机制,绝对值得你一试!

项目地址:https://gitcode.com/lujakob/nestjs-realworld-example-app

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gitblog_00006

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值