nestjs

typeorm Пример кода миграции

Пример создание и у удаления таблицы (пострес):

import { MigrationInterface, QueryRunner } from 'typeorm';

export class StudetsTest1634028529814 implements MigrationInterface {
  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `CREATE TABLE students (
            student_id  BIGSERIAL,
            student_name CHAR(100),
            student_age INT
        );`,
    );
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(`DROP TABLE students;`);
  }
}

typeorm SyntaxError: Cannot use import statement outside a module (nestjs)

import { MigrationInterface, QueryRunner } from 'typeorm';
^^^^^^

SyntaxError: Cannot use import statement outside a module

-- ошибка возникает в файле миграции, после запуска проекта:

npm run start:debug

MigrationInterface Cannot use import statement outside a module

Возможное решение

Используйте __dirname для указания пути относительно файла конфига.

Материлы по теме

nestjs typeorm cli Использовать общую конфигурацию (конфиг). Пример кода

Основная идея -- для nest использовать передаваемый как параметр configService, а для режима cli командной строки самостоятельно парсить env (и вообще в любом случае самостоятельно если сервис конфигурации не переда как аргумент). Пример реализации ниже

Пример конфига config.ts (в нашем случае лежал относительно корня проекта так: src/modules/database/config.ts ):

nest-pino at ServerResponse.onResFinished logger Ошибка

Ошибка наблюдается при быстром повторном вызове метода с логгером.

для nestjs-pino 1.4.0 она выглядит так:

nestjs joi Отладка валидации входных данных для контроллеров

Просто уберем джои из аннотаций и проведем проверку в теле метода контроллера, например:

nestjs Контроллер, GET парамертры и параметры URL - пример

Получать GET-параметры и параметры из замого адреса запроса можно так (пример контроллера):

import { Controller, Get, Param, Query } from '@nestjs/common';

@Controller('test')
export class TestController {

  @Get('queryparams/:id')
  getTestGetparams(@Param('id') id, @Query('type') type): string {
    return `Url param: ${id}, Get param type = ${type}`;
  }
}

Валидация Get параметров с помощью joi (пример для Enum)

Пример:

pg error: password authentication failed for user Ошибка

Проблема

Проблема состоит в том, что консольный (psql) и графический (DBevear) работают нормально (удаленная база данных, порт прокинут через SSH-туннель), а pg не работает через тот же туннель выдавая ошибку:

(node:449926) UnhandledPromiseRejectionWarning: error: password authentication failed for user

Можно помочь:

nestjs Генерация кода, контроллеры и др

Сначала ставим консольную утилиту, потом можем глянуть что за команды поддерживаются:

nest --help

Генерация кода

  • Контроллер:
    nest g co
  • Модуль:
    nest g mo

Pages

Subscribe to RSS - nestjs