Nestjs基础入门教程一步一步学会构建后端服务中遇到的问题

最近在学习NestJS框架,看了些基础教程但还是有些困惑:

  1. 创建新项目时总提示依赖安装失败,该怎样正确初始化NestJS项目?
  2. 控制器和提供者的具体区别是什么?在什么场景下该用哪个?
  3. @Module装饰器组织模块时,共享模块和全局模块的最佳实践是怎样的?
  4. 为什么我的中间件在特定路由不生效?是不是和拦截器的执行顺序有关?
  5. 部署时如何处理环境变量配置?有没有类似dotenv的推荐方案?
    希望能结合具体代码示例说明,谢谢!
3 回复

给你推荐套Nestjs基础入门教程:https://www.itying.com/goods-1139.html

以下是一个简单的NestJS入门步骤:

  1. 安装Node.js和NPM:确保你的电脑已安装Node.js环境。

  2. 创建项目

    npm i -g [@nestjs](/user/nestjs)/cli
    nest new project-name
    cd project-name
    
  3. 项目结构理解

    • src目录:存放源代码。
    • main.ts:应用入口文件。
    • app.module.ts:应用的核心模块。
  4. 启动项目

    npm run start:dev
    

    浏览器访问http://localhost:3000,显示默认欢迎页面。

  5. 创建控制器

    nest generate controller hello
    

    src/hello/hello.controller.ts中添加路由逻辑。

  6. 创建服务(可选):

    nest generate service data
    

    src/data/data.service.ts中编写业务逻辑。

  7. 配置路由: 在控制器中定义路由方法,例如@Get()

  8. 运行与调试:修改代码后保存会自动重启服务。

  9. 数据库集成(进阶):使用TypeORM或Mongoose连接数据库。

  10. 部署:使用PM2或其他工具将项目部署到服务器。

通过以上步骤,你可以快速构建一个基本的NestJS后端服务。深入学习可以参考官方文档。


  1. 安装Node.js:首先确保安装了Node.js环境。
  2. 创建项目:使用npm i -g @nestjs/cli全局安装Nest CLI,然后运行nest new project-name生成项目骨架。
  3. 项目结构:了解项目目录结构,重点是src文件夹,包含主要代码如app.module.ts
  4. 模块与控制器:通过命令nest generate controller cats创建控制器。在CatsController中添加基本路由如@Get()
  5. 服务层:生成服务nest generate service cats,在CatsService中实现业务逻辑,控制器调用服务完成任务。
  6. 依赖注入:理解Nest的DI机制,通过构造函数注入服务到控制器。
  7. 配置文件:修改app.module.ts设置路由前缀、引入模块等。
  8. 启动服务:运行npm run start:dev启动开发服务器,访问接口验证功能。
  9. 数据库集成:配置TypeORM或Mongoose连接数据库,设计实体类。
  10. 单元测试:学习如何编写测试用例,确保代码质量。

逐步实践以上步骤,即可搭建一个完整的NestJS后端服务。

NestJS 基础入门教程

什么是NestJS

NestJS是一个用于构建高效、可扩展的Node.js服务器端应用程序的框架。它使用渐进式JavaScript,内置并完全支持TypeScript,结合了OOP(面向对象编程)、FP(函数式编程)和FRP(函数响应式编程)的元素。

安装与创建项目

  1. 首先确保已安装Node.js(建议v12+)
  2. 安装Nest CLI:
npm i -g @nestjs/cli
  1. 创建新项目:
nest new project-name

项目结构

src/
├── app.controller.ts      # 基础控制器
├── app.module.ts         # 根模块
├── app.service.ts        # 基础服务
└── main.ts               # 应用入口文件

创建模块

NestJS采用模块化结构:

nest generate module cats

创建控制器

控制器负责处理传入请求并返回响应:

nest generate controller cats

示例控制器代码:

import { Controller, Get } from '@nestjs/common';

@Controller('cats')
export class CatsController {
  @Get()
  findAll(): string {
    return 'This action returns all cats';
  }
}

创建服务

服务处理业务逻辑:

nest generate service cats

示例服务代码:

import { Injectable } from '@nestjs/common';

@Injectable()
export class CatsService {
  private readonly cats: string[] = ['Tom', 'Garfield'];

  findAll(): string[] {
    return this.cats;
  }
}

连接数据库

  1. 安装TypeORM和数据库驱动:
npm install @nestjs/typeorm typeorm mysql2
  1. 配置数据库连接:
// app.module.ts
import { TypeOrmModule } from '@nestjs/typeorm';

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: 'localhost',
      port: 3306,
      username: 'root',
      password: 'password',
      database: 'test',
      entities: [],
      synchronize: true,
    }),
  ],
})
export class AppModule {}

运行应用

npm run start:dev

访问 http://localhost:3000 即可看到你的应用运行。

希望这个基础教程能帮助你开始使用NestJS构建后端服务!

回到顶部