• Как в Sequlize вернуть значение атрибута вместо объекта?

    @vladislav3101 Автор вопроса
    Решение:
    Метод col()
    const transaction = await Transaction.findByPk(1, {
    attributes: [[sequelize.col('transactionStatus.name'), 'status'], 'id'],
    include: [
      {
        model: TransactionStatus,
        as: 'transactionStatus',
        attributes: []
      }
    ]
    })

    Мне пришлось ключ as изменить на другое название. По какой то причине Sequlize не хочет выводить столбец с именем "status", когда в "подключаемой"(include) модели есть ключ as с таким же названием (хотя запрос sql выполняется и возвращает данные как нужно).
    Ответ написан
    Комментировать
  • Правильно ли использовать такой код (логику) в repository pattern?

    @vladislav3101 Автор вопроса
    И так изучив данный паттерн немного "глубже", и как расписал мне Михаил. Нужно данную логику вынести в сервис, а репозиторий в свою очередь уже примет готовый объект со всеми корректными критериями. И конечно же наименование метода findOne считается некорректным для репозитория. Имхо.
    Ответ написан
    Комментировать
  • В чем заключается задача controller паттерна MVC?

    @vladislav3101 Автор вопроса
    Нашел ответ спустя 1 час, перебрал много мусора на форумах. Ответ: в моделях! Поясняю: модель может использоваться в разных местах и писать одни и те же проверки в контроллерах нет смысла. Допустим проверка на пустоту в отправленных данных, лучше 1 раз проверить в моделях, чем писать в разных контроллерах одно и тоже. Контроллер лишь получит от модели ответ и отдаст клиенту в нужном виде.
    Ответ написан
  • Функция useState возвращает старое значение, как можно исправить?

    @vladislav3101 Автор вопроса
    const SignUpContainer = () => {
      const [values, setValues] = useState({
        email: '',
        login: '',
        password: '',
        password2: '',
      });
    
      const [errors, setErrors] = useState({});
    
      const handleChange = (e) => {
        const { name, value } = e.target;
        setValues({ ...values, [name]: value });
      };
    
       const isValid = () => {
        const errors = validateSignUp(values);
        if (Object.keys(errors).length > 0) {
          setErrors(errors);
          return false;
        }
        return true;
      };
    
      const handleSubmit = (e) => {
        e.preventDefault();
        if (isValid()) {
          setErrors({});
          console.log('Ошибок нет');
        } else {
          console.log('Ошибки есть');
        }
      };
    
      return (
        <FormSignUp
          handleChange={handleChange}
          handleSubmit={handleSubmit}
          values={values}
          errors={errors}
        />
      );
    };
    
    export default SignUpContainer;
    Ответ написан
    Комментировать
  • Как исправить ошибку при рендеринге компонентов в map?

    @vladislav3101 Автор вопроса
    нашел ошибку, она была совсем не тут. В компоненте TableHeading, я забыл указать деструктуризацию {children}. Простите.
    Ответ написан
    Комментировать