全栈之路- Nest入门
Nest 是一款基于 TypeScript 的渐进式 Node.js 框架,它提供了一种结构清晰、可扩展且易于维护的方式来构建服务器端应用程序。对于前端工程师来说,学习 Nest 是进阶成为全栈开发者的重要一步。本文将为你提供一个简单的入门指南,帮助你开始学习 Nest,并展示一些基础使用和注意事项。
安装 Nest
首先,我们需要安装 Node.js 和 npm(或者使用 yarn)。打开终端并执行以下命令:
shellCopy code
npm install -g @nestjs/cli
这将全局安装 Nest CLI,它将帮助我们创建和管理 Nest 项目。
创建 Nest 项目
在你选择的项目目录中,执行以下命令创建一个新的 Nest 项目:
shellCopy code
nest new my-nest-app
这将创建一个名为 my-nest-app
的新项目,并自动安装所需的依赖项。
第一个 CURD
创建curd
可以使用以下命令一步创建完毕
nest g resource cats
将直接生成如下一套curd
文件
分步创建 CURD
创建第一个Controller
在项目根目录下,执行以下命令创建一个控制器:
nest generate controller cats
这将在 src
目录下创建一个名为 cats.controller.ts
的文件。打开它并用以下代码替换:
import { Controller, Get, Post, Body } from '@nestjs/common';
import { CatsService } from './cats.service';
import { CreateCatDto } from './dto/create-cat.dto';
@Controller('cats')
export class CatsController {
constructor(private readonly catsService: CatsService) {}
@Get()
async findAll(): Promise<Cat[]> {
return this.catsService.findAll();
}
@Post()
async create(@Body() createCatDto: CreateCatDto): Promise<Cat> {
return this.catsService.create(createCatDto);
}
}
创建 Service
执行以下命令创建一个服务:
nest generate service cats
这将在 src
目录下创建一个名为 cats.service.ts
的文件。打开它并用以下代码替换:
import { Injectable } from '@nestjs/common';
import { Cat } from './interfaces/cat.interface';
import { CreateCatDto } from './dto/create-cat.dto';
@Injectable()
export class CatsService {
private readonly cats: Cat[] = [];
findAll(): Promise<Cat[]> {
return Promise.resolve(this.cats);
}
create(createCatDto: CreateCatDto): Promise<Cat> {
const cat: Cat = {
id: Date.now().toString(),
name: createCatDto.name,
age: createCatDto.age,
};
this.cats.push(cat);
return Promise.resolve(cat);
}
}
创建 Module
执行以下命令创建一个模块:
nest generate module cats
这将在 src
目录下创建一个名为 cats.module.ts
的文件。打开它并用以下代码替换:
import { Module } from '@nestjs/common';
import { CatsController } from './cats.controller';
import { CatsService } from './cats.service';
@Module({
controllers: [CatsController],
providers: [CatsService],
})
export class CatsModule {}
创建 DTO
创建一个 DTO(数据传输对象)用于定义传入请求的数据结构。执行以下命令创建一个 DTO:
touch src/cats/dto/create-cat.dto.ts
打开 create-cat.dto.ts
文件并添加以下代码:
export class CreateCatDto {
name: string;
age: number;
}
创建 Entity
执行以下命令创建一个实体:
nest generate module cats/entities
注册 Module
要使用我们创建的 CatsModule
,我们需要将其注册到应用程序中。打开 app.module.ts
文件,修改代码如下:
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { CatsModule } from './cats/cats.module';
@Module({
imports: [CatsModule],
controllers: [AppController],
providers: [],
})
export class AppModule {}
启动应用程序
现在,我们可以启动我们的 Nest
应用程序并查看结果了
© 版权声明
文章版权归作者所有,未经允许请勿转载,侵权请联系 admin@trc20.tw 删除。
THE END