📅  最后修改于: 2023-12-03 15:17:51.166000             🧑  作者: Mango
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();
}
}
首先,我们导入Controller
和Get
装饰器,然后创建一个名为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!”。
以前面的AppController
和AppService
为例,我们可以将它们组织到一个NestJS模块中,以达到更好的代码组织效果。创建一个名为AppModule的模块,并将AppController
和AppService
注入到该模块中:
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
数组中列出了该模块所依赖的其他模块。在controllers
和providers
数组中列出了该模块中用到的控制器和服务。
我们在代码中创建了控制器和服务,并将它们组织到了一个模块中,现在可以启动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,并通过代码示例来快速入门。