📜  nestjs 框架 - Javascript (1)

📅  最后修改于: 2023-12-03 15:17:51.166000             🧑  作者: Mango

NestJS框架 - Javascript

NestJS是一个基于Node.js的后端应用程序框架,它使用现代化的Javascript(或TypeScript)来构建可靠、可扩展的应用程序。NestJS于2017年正式发布,其概念受到了Angular框架的启发。

特点
模块化

NestJS采用了模块化设计,可以使得应用程序的各个部分相互独立。每个模块包含了一组相关的组件,比如路由、控制器、服务等等,这些组件的功能是紧密耦合的。通过模块化设计,我们可以很方便地对应用程序的结构进行分层和组织。

强类型

NestJS使用了TypeScript作为开发语言,强制执行类型检查。这使得代码更加可读、可维护和可测试。通过强类型和依赖注入技术,我们可以实现高度可测试性和可扩展性。

依赖注入

NestJS使用了依赖注入(DI)机制,它让我们更好地组织代码。DI是一种设计模式,可以将代码拆分成一个个小块,这些小块之间可以松散耦合,易于测试和维护。在NestJS中,我们可以通过DI,将各种服务注入到组件中。

轻松集成

NestJS广泛支持各种第三方库和框架,如需要使用ORM或者消息队列,只需要简单地安装相应的依赖,然后在代码中引用即可。

代码示例
安装

我们可以使用NPM直接安装NestJS:

npm i --save @nestjs/core @nestjs/common @nestjs/platform-express

安装完成后,我们就可以开始创建NestJS应用程序了。

创建控制器

在NestJS中,控制器是我们应用程序的入口点之一,它处理来自客户端的HTTP请求。下面是一个简单的控制器代码示例:

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

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

  @Get()
  getHello(): string {
    return this.appService.getHello();
  }
}

首先,我们导入ControllerGet装饰器,然后创建一个名为AppController的类,并使用@Controller装饰器将其标记为控制器。在构造函数中,我们使用依赖注入技术,将AppService注入到控制器中。@Get装饰器表示该方法将处理HTTP GET请求,并返回文本类型的Hello World消息。

创建服务

服务是NestJS应用程序的一个重要组成部分,它负责执行一些复杂的业务逻辑,如计算、数据库访问等等。下面是一个简单的服务代码示例:

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

@Injectable()
export class AppService {
  getHello(): string {
    return 'Hello World!';
  }
}

我们创建了一个名为AppService的类,使用@Injectable()装饰器将其标记为可注入的服务。getHello方法返回一个字符串“Hello World!”。

模块化设计

以前面的AppControllerAppService为例,我们可以将它们组织到一个NestJS模块中,以达到更好的代码组织效果。创建一个名为AppModule的模块,并将AppControllerAppService注入到该模块中:

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装饰器。imports数组中列出了该模块所依赖的其他模块。在controllersproviders数组中列出了该模块中用到的控制器和服务。

启动应用程序

我们在代码中创建了控制器和服务,并将它们组织到了一个模块中,现在可以启动NestJS应用程序了。在main.ts文件中,创建一个名为app的NestJS应用程序,并监听端口3000:

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

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

现在我们可以启动应用程序,运行测试:

npm run start

通过浏览器访问localhost:3000,你应该可以看到一个显示“Hello World!”的页面。

总结

NestJS框架基于Node.js提供了一种快速、高效、可扩展的开发体验。它使用现代化的Javascript(或TypeScript)来构建可靠、可扩展的应用程序,并支持模块化设计、强类型、依赖注入和轻松集成。我们可以通过NPM很方便地安装NestJS,并通过代码示例来快速入门。