2. Nest.js 基础:创建第一个应用

250 阅读3分钟

2. Nest.js 基础:创建第一个应用

介绍

嘿,欢迎回来!在上一篇文章中,我们已经为 Nest.js 的开发环境铺好了路,并成功创建了一个新项目。现在,是时候动手实践,创建你的第一个 Nest.js 应用了!这篇文章将带你一步步了解如何创建和运行一个简单的 Nest.js 应用,并介绍一些基本的概念和结构。

创建第一个应用

1. 项目结构

首先,让我们来看看通过 nest new 命令生成的项目结构。就像打开一个新玩具的包装盒一样,我们来看看里面都有什么:

project-name/
├── src/
│   ├── app.controller.ts
│   ├── app.controller.spec.ts
│   ├── app.module.ts
│   ├── app.service.ts
│   └── main.ts
├── test/
├── .eslintrc.js
├── .prettierrc
├── nest-cli.json
├── package.json
├── tsconfig.build.json
└── tsconfig.json
  • src/ 目录:这里是你的代码主战场。
  • app.controller.ts:控制器文件,负责处理请求。
  • app.service.ts:服务文件,负责业务逻辑。
  • app.module.ts:应用的根模块,像是应用的大脑。
  • main.ts:应用的入口文件,启动应用的地方。
2. 入口文件 (main.ts)

main.ts 文件是应用的入口点,就像是按下启动按钮:

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(3000);
}
bootstrap();

在这个文件中,我们使用 NestFactory 创建了一个 Nest.js 应用实例,并让它监听在 http://localhost:3000 端口。就像是告诉应用:“嘿,去这个地址等着,有人会来找你!”

3. 根模块 (app.module.ts)

app.module.ts 文件定义了应用的根模块,像是应用的大脑,指挥各个部分如何协作:

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';

@Module({
  imports: [],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}
  • @Module 装饰器:用来描述模块的配置。
  • controllers 数组:包含了该模块的控制器。
  • providers 数组:包含了该模块的提供者(服务)。
4. 控制器 (app.controller.ts)

app.controller.ts 文件定义了一个基本的控制器,负责处理请求并返回响应:

import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';

@Controller()
export class AppController {
  constructor(private readonly appService: AppService) {}

  @Get()
  getHello(): string {
    return this.appService.getHello();
  }
}
  • @Controller 装饰器:定义一个控制器。
  • @Get 装饰器:定义一个 GET 请求的路由。
  • getHello 方法:调用 AppServicegetHello 方法,并返回一个字符串。
5. 服务 (app.service.ts)

app.service.ts 文件定义了一个基本的服务,负责处理业务逻辑:

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

@Injectable()
export class AppService {
  getHello(): string {
    return 'Hello World!';
  }
}
  • @Injectable 装饰器:定义一个可注入的服务。
  • getHello 方法:返回一个字符串 "Hello World!"。

运行应用

现在,我们已经了解了项目的基本结构和各个文件的作用。让我们运行应用并测试一下。

在项目根目录下运行以下命令:

npm run start

打开浏览器,访问 http://localhost:3000,你应该会看到 "Hello World!" 的响应。这表示你的第一个 Nest.js 应用已经成功运行!

结论

在这篇文章中,我们创建了一个基本的 Nest.js 应用,并介绍了项目的基本结构和各个文件的作用。通过运行应用并访问默认路由,我们验证了应用的正确性。在接下来的文章中,我们将深入探讨 Nest.js 的模块化架构,了解如何使用模块来组织和管理你的应用。

接下来,我们将进入第三篇文章,介绍 Nest.js 的模块化架构。准备好了吗?让我们继续前进吧!