@Gumus171991

При использовании useLazyFetch и useFetch возникает ошибка "Cannot stringify arbitrary non-POJOs". Как исправить?

Для получения изображения с сервера использую функцию getPhoto. Код представляю ниже:
const getPhoto = async (channelName: string) => {
    try {
      const url = import.meta.env.VITE_API_URL + '/channels/' + channelName + '/photo';

      const {data} = await useLazyFetch(url);

      if (data.value) {
        return url;
      } else {
        return null;
      }
    } catch (e) {
      console.log(e);
      return null;
    }
  }


В данный метод с сервера может прийти либо картинка, либо JSON. При использовании данного метода Nuxt возвращает ошибку "Cannot stringify arbitrary non-POJOs". Если заменяю useLazyFetch на обычный fetch, то всё работает.
При этом другие методы для получения информации с сервера прекрасно работают и с useLazyFetch.

Также на всякий случай приложу метод для возврата картинки с сервера:
@Header('Content-Type', 'application/jpeg')
  @Header('Content-Disposition', 'attachment; filename=avatar.jpg')
  @Get(':channelName/photo')
  async getFile(@Param('channelName') channelName: string) {
    const channel = await this.channelService.getChannel({
      channelName,
    });

    if (!channel) {
      throw new NotFoundException({
        error: {
          code: 'NOT_FOUND_ERROR',
          msg: 'Channel not found',
        },
      });
    }

    let fileStream: ReadStream;
    try {
      const file = await open(
        join(process.cwd(), '/_td_database/profile_photos/' + channel.photo),
      );

      fileStream = file.createReadStream();

      return new StreamableFile(fileStream);
    } catch (e) {
      if (e.code === 'ENOENT') {
        throw new UnprocessableEntityException({
          error: {
            code: 'PHOTO_ERROR',
            msg: 'Error with loading photo',
          },
        });
      } else {
        console.log(e);
        throw new BadRequestException({
          error: {
            code: 'UNKNOWN_ERROR',
            msg: 'Unknown error',
          },
        });
      }
    }
  }

Заранее спасибо всем!
  • Вопрос задан
  • 157 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы