使用 Nest.js 构建可扩展的后端应用

晨曦吻 2021-02-17 ⋅ 26 阅读

Nest.js 是一个基于 Node.js 的框架,用于构建可扩展的后端应用程序。它结合了现代的 JavaScript(或 TypeScript)特性和设计模式,提供了一种渐进式的开发体验。本文为您介绍 Nest.js 的入门指南,并带您快速上手。

安装 Nest.js

首先,确保您已经在本地安装了 Node.js 和 npm。然后打开终端并运行以下命令,全局安装 Nest CLI:

npm install -g @nestjs/cli

安装完成后,您可以通过运行以下命令验证 Nest CLI 是否已成功安装:

nest --version

创建新的 Nest.js 项目

创建一个新的 Nest.js 项目非常简单。在终端中导航到您喜欢的目录,并运行以下命令:

nest new my-project

这将自动为您创建一个名为 my-project 的新项目,其中包括 Nest.js 的基本项目结构和一些示例文件。进入项目目录:

cd my-project

创建一个控制器

在 Nest.js 中,控制器是处理传入请求的地方。我们将创建一个名为 cats 的控制器,处理猫咪相关的请求。运行以下命令来生成新的控制器:

nest g controller cats

这将自动生成一个名为 cats 的控制器,并在 src/cats 目录下创建文件。打开 src/cats/cats.controller.ts,您将看到一些示例代码。

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

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

创建一个服务

为了处理控制器中定义的逻辑,我们需要创建一个服务。服务是可重用的逻辑单元,用于处理业务逻辑。运行以下命令来生成新的服务:

nest g service cats

这将创建一个名为 cats.service.ts 的服务文件,以及一个名为 CatsService 的服务类。打开 cats.service.ts 文件,并更新代码如下:

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

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

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

连接控制器和服务

为了将控制器和服务连接起来,我们需要将服务注入到控制器中。打开 cats.controller.ts 文件,并更新代码如下:

import { Controller, Get } from '@nestjs/common';
import { CatsService } from './cats.service'; // 引入服务

@Controller('cats')
export class CatsController {
  constructor(private readonly catsService: CatsService) {} // 注入服务到控制器

  @Get()
  findAll(): string[] {
    return this.catsService.findAll(); // 使用服务中的方法
  }
}

启动应用程序

现在,我们已经创建了一个简单的控制器和服务,我们需要启动我们的应用程序来查看结果。在项目根目录下,运行以下命令:

npm run start

Nest CLI 将启动一个本地开发服务器,监听默认的 http://localhost:3000。打开浏览器,并访问 http://localhost:3000/cats,您将看到返回的数据 This action returns all cats

结论

恭喜!您已经完成了使用 Nest.js 构建可扩展的后端应用的入门指南。您学习了如何初始化项目、创建控制器和服务,并连接它们以提供功能。Nest.js 提供了更多高级特性和模块,帮助您构建更复杂的后端应用。希望此指南可为您的项目开发提供有用的起点。

希望您喜欢本篇介绍 Nest.js 的入门指南。如果您对 Nest.js 感兴趣,可以进一步深入学习它的文档和示例。祝您在使用 Nest.js 构建可扩展的后端应用上取得成功!

参考文档:Nest.js 官方文档


全部评论: 0

    我有话说: