Обработка ошибок Nest не обнаруживает ошибок при импорте AuthGuard из моего пользовательского пакетаJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Обработка ошибок Nest не обнаруживает ошибок при импорте AuthGuard из моего пользовательского пакета

Сообщение Anonymous »

Проблема:
У меня есть собственный пакет NPM, включающий утилиты, совместно используемые различными микросервисами, созданными с помощью Nest JS. Проблема в том, что когда AuthGuard выдает ошибку с некоторыми данными из моего пакета, приложение Nest перехватывает ее, но выдает только ошибку по умолчанию. Я выдаю ошибку HttpException с некоторыми данными и хочу, чтобы приложение Nest выдавало те же данные в качестве ответа, а не по умолчанию.
Код:
Защита аутентификации в пакете — это простая защита, которая проверяет токен и возвращает ответ или ошибку.

Код: Выделить всё

import { CanActivate, ExecutionContext, Injectable, HttpException } from '@nestjs/common';
import { verifyToken } from '../helpers';
@Injectable()
export class AuthGuard implements CanActivate {
constructor() {}
async canActivate(context: ExecutionContext): Promise {
const request = context.switchToHttp().getRequest();
try {
const token = request.headers.authorization?.split(' ')[1];
return await verifyToken(
token,
);
} catch (error) {
console.log('⛈️⛈️⛈️⛈️⛈️⛈️', error);
throw new HttpException(
{
errorDetails: "Token Expired",
},
401,
);
}
}
По этой логике я должен получить ошибку в формате

Код: Выделить всё

{
errorDetails:"Token Expired"
}
но NEST возвращает ошибку по умолчанию

Код: Выделить всё

{
"statusCode": 500,
"message": "Internal server error"
}
Я пытался создать модуль Nest для AuthGuard и импортировать его в свой app.module, но это не сработало. Я создал для него глобальный фильтр исключений, но он тоже не сработал.
Тот же код работает, если я помещу его в файл внутри моего приложения.

Подробнее здесь: https://stackoverflow.com/questions/793 ... m-my-custo
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»