|
crash-course-nest-js
crash-course-nest-js
Перейти на страницу: Проекты
Видео:
Быстрый курс по Nest.js
- Добавим префикс в файле main.ts
1
| app.setGlobalPrefix('api'); |
- Генерируем моудуль post
- Генерируем контроллер post
1
| nest g co post --no-spec |
- Генерируем сервиса post
- Генерируем dto post
1
| nest g cl post/post.dto --no-spec |
- Удалим файл app.controller.spec.ts, потому что он пока нам будет не нужен
1
| ri src/app.controller.spec.ts |
Работа с контроллером
- В контроллере создадим тестовые данные
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| posts: any[];
constructor() {
this.posts = [
{
id: 1,
content: 'Тест 1',
userName: 'Михаил',
},
{
id: 2,
content: 'Тест 2',
userName: 'Макар',
},
{
id: 3,
content: 'Тест 3',
userName: 'Джон',
},
];
} |
- Получим все посты
1 2 3 4 5
| // Получаем все посты
@Get()
async getAll() {
return this.posts;
} |
- Создадим новый пост
1 2 3 4 5
| // Создаем новый пост
@Post()
async create(@Body() dto: PostDto) {
return [...this.posts, dto];
} |
- Получаем пост по id
1 2 3 4 5
| // Получаем пост по id
@Get(':id')
async getById(@Param('id') id: string) {
return this.posts.find((p) => p.id === Number(id));
} |
- Обновляем пост по id
1 2 3 4 5 6 7
| // Обновление поста по id
@Put(':id')
async update(@Param('id') id: string, @Body() dto: CreatePostDto) {
const post = await this.posts.find((p) => p.id === Number(dto.id));
post.content = dto.content;
return post;
} |
- Удаляем пост по id
1 2 3 4 5
| // Удаление поста по id
@Delete(':id')
async delete(@Param('id') id: string) {
return this.posts.filter((p) => p.id !== Number(id));
} |
|