📅  最后修改于: 2023-12-03 15:33:05.994000             🧑  作者: Mango
如果你想学习如何使用 Nestjs 构建 Node.js 应用,那么这篇教程就是为你准备的。我们将涵盖 Nestjs 的基础知识,包括 TypeScript 的使用和如何使用 Nestjs 中的模块、控制器和服务来构建应用。
我们需要先安装 Node.js 和 npm,这些工具可以下载官方网站上的安装程序来安装。安装后,我们可以通过以下命令来检查是否正确安装:
node -v
npm -v
接下来,我们可以使用 npm 安装 Nestjs CLI:
npm i -g @nestjs/cli
安装完毕后,我们可以创建一个新的 Nestjs 应用程序:
nest new my-app
cd my-app
安装完毕后,我们可以运行以下命令启动开发服务器:
npm run start:dev
这会在本地主机上启动一个 HTTP 服务器,监听 http://localhost:3000
。
Nestjs 使用 TypeScript 作为开发语言。如果你对 TypeScript 不熟悉,那么可以参考下面的简单介绍:
TypeScript 是一种静态类型检查的编程语言,它被设计成 JavaScript 的超集,编译时会将 TypeScript 代码编译成 JavaScript 代码。
TypeScript 具有以下优点:
Nestjs 应用程序由不同的模块组成,每个模块都是独立的,在代码可重用、可测试和可维护性方面具有很多优点。我们可以通过使用 @Module
装饰器来定义模块。
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
@Module({
imports: [],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
在上面的代码中,我们定义了一个 AppModule
模块,并通过 imports
、controllers
和 providers
属性向应用程序添加了一些基本组件。
在 Nestjs 中,控制器是负责处理 HTTP 请求和响应的组件,可以通过 @Controller
装饰器来定义一个控制器,例如:
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();
}
}
在上面的代码中,我们创建了一个 AppController
控制器,并使用 @Controller
装饰器来指定路由的基路径。我们还创建了一个 GET 路由函数,该函数将请求代理到 appService.getHello
函数。
在 Nestjs 中,服务是一个可以从控制器、路由和其他组件中注入的可重用代码单元。我们可以通过 @Injectable
装饰器来定义服务,并使用构造函数注入来注入服务,例如:
import { Injectable } from '@nestjs/common';
@Injectable()
export class AppService {
getHello(): string {
return 'Hello World!';
}
}
在上面的代码中,我们定义了一个 AppService
服务,在其中包含了一个 getHello
函数。服务使用 @Injectable
装饰器进行注释,以使用依赖注入。
到此为止,我们已经涵盖了 Nestjs 的基础知识,包括 TypeScript 的使用和如何使用 Nestjs 来构建应用。如果你想深入了解 Nestjs,请继续阅读官方文档。
本篇教程共有 4 个代码示例,它们分别是:创建新应用、增加模块、增加控制器和增加服务。欢迎在本地运行这些代码并尝试其它的功能。