РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnsSpCoGr 198 of 201 menu
◀ ▶

Генерация ресурса в Nest

Новая тема требует модуля, страницы, сервиса, классов передачи данных и описания записи. Каждый раз повторяют одну схему папок, и легко забыть связать классы в модуле.

Команда nest generate resource из корня проекта создаёт заготовку REST CRUD: модуль, контроллер, сервис, DTO, класс сущности и подключает модуль к корню. CLI спросит транспорт REST и нужны ли точки CRUD. Ключ --no-spec убирает файлы тестов.

Покажем на примере постов:

nest generate resource posts --no-spec

В папке темы появятся модуль, контроллер PostsController, сервис, два DTO и entities/post.entity.ts. Импорты между файлами темы CLI дописывает с суффиксом .js под ESM. Контроллер несёт префикс posts и заготовки CRUD:

import { Module } from '@nestjs/common'; import { PostsService } from './posts.service.js'; import { PostsController } from './posts.controller.js'; @Module({ controllers: [PostsController], providers: [PostsService], }) export class PostsModule {}
import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common'; import { PostsService } from './posts.service.js'; import { CreatePostDto } from './dto/create-post.dto.js'; import { UpdatePostDto } from './dto/update-post.dto.js'; @Controller('posts') export class PostsController { constructor(private postsService: PostsService) {} @Post() create(@Body() createPostDto: CreatePostDto) { return this.postsService.create(createPostDto); } @Get() findAll() { return this.postsService.findAll(); } @Get(':id') findOne(@Param('id') id: string) { return this.postsService.findOne(+id); } @Patch(':id') update(@Param('id') id: string, @Body() updatePostDto: UpdatePostDto) { return this.postsService.update(+id, updatePostDto); } @Delete(':id') remove(@Param('id') id: string) { return this.postsService.remove(+id); } }
export class Post {}

Корневой модуль получит импорт PostsModule:

import { Module } from '@nestjs/common'; import { PostsModule } from './posts/posts.module.js'; @Module({ imports: [PostsModule], }) export class AppModule {}

Сгенерируйте REST ресурс работников, чтобы появились WorkersModule, WorkersController, WorkersService и класс сущности в папке темы, подключённый к корневому модулю.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить