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

Добавление элемента в Nest

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

Операция добавления принимает поля новой записи, кладёт объект в массив и возвращает его. Контроллер читает тело запроса и передаёт данные в сервис.

Покажем на примере постов. Начнём с одной записи в памяти и метода добавления:

import { Injectable } from '@nestjs/common'; @Injectable() export class PostService { private posts = [ { id: '1', title: 'Morning note', text: 'A short text', }, ]; addPost(post: { title: string; text: string }) { const item = { id: String(this.posts.length + 1), title: post.title, text: post.text, }; this.posts.push(item); return item; } }

Маршрут создания прочитает тело и вызовет добавление:

import { Body, Controller, Post } from '@nestjs/common'; import { PostService } from './post.service.js'; @Controller() export class PostController { constructor(private postService: PostService) {} @Post('posts') createPost( @Body() body: { title: string; text: string }, ) { return this.postService.addPost(body); } }

Зарегистрируем сервис и контроллер в корневом модуле:

import { Module } from '@nestjs/common'; import { PostController } from './post.controller.js'; import { PostService } from './post.service.js'; @Module({ controllers: [PostController], providers: [PostService], }) export class AppModule {}

Примите нового работника в контроллере WorkerController и добавьте его в список сервиса WorkerService. Оба класса подключите к корневому модулю.

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