• Почему поля в бд добавляются некоректно?

    @komigor Автор вопроса
    Надо индексы добавить await knex("clients").where({id: client.ID }).update({phones: knex.raw('array_append(phones, ?)', [phone])})
    Ответ написан
    Комментировать
  • Как в type orm получить поле по значению элемента массива в поле?

    @komigor Автор вопроса
    getRepository(Client).createQueryBuilder("user").where(`:tel = any(phone);`, {tel: phoneNumber}).getOne();
    Ответ написан
    Комментировать
  • Как передать instace объекта в функцию?

    @komigor Автор вопроса
    Короче вот готовый код
    class ApiError extends Error {
      status: number;
    
      message: string;
    
      constructor(status: number, message: string) {
        super();
        this.status = status;
        this.message = message;
      }
    
      static badRequest(message: string) {
        return new ApiError(404, message);
      }
    
      static internal(message: string) {
        return new ApiError(500, message);
      }
    
      static forbidden(message: string) {
        return new ApiError(403, message);
      }
    }
    
    export default ApiError;


    А вот обработчик :
    /* eslint-disable @typescript-eslint/no-unused-vars */
    import { Request, Response, NextFunction } from 'express';
    import ApiError from '../errors/ApiError';
    
    const errorHandler = function (
      err: ApiError,
      req: Request,
      res: Response,
      next: NextFunction,
    ): Response {
      if (err instanceof ApiError) {
        return res.status(err.status).json({ message: err.message });
      }
      return res.status(500).json({ message: 'Непредвиденная ошибка!' });
    };
    
    export default errorHandler;
    Ответ написан
    Комментировать
  • Почему typescript не видит пременные окружения?

    @komigor Автор вопроса
    надо было просто вот так написать import { Sequelize } from 'sequelize-typescript';
    export const db = new Sequelize(
              `${process.env.DB_NAME}`,
              `${process.env.DB_USER}` ,
              `${process.env.DB_PASSWORD}`,
              {
                  host: 'localhost',      
                  dialect: 'postgres', 
                  models: [__dirname + 'models']
              }
    );
    Ответ написан
  • Почему Event Loop пропускает очередь poll и сразу выполняет check?

    @komigor Автор вопроса
    Оказалось бращение к файловой системе Node.js делегирует системным вызовам, то есть эта фаза не полностью под контролем Node.js, в отличие от всех остальных в моем скрипте. Поэтому, до тех пор, пока придёт ответ от файловой системы, event loop может пройти виток или больше.
    Ответ написан
    Комментировать