Как сделать игнорирование ошибок typescript (node js)?

Ссылка скопирована
1 ответ

всем привет!
Подскажите как можно сделать чтобы ошибки возникающие у одного юзера, не вешали весь сервер?
Сейчас наш сайт работает на Vue, бэкенд на TypeScript, запускаем разработку таким кодом:
tsnd --inspect --ignore-watch node_modules --respawn --transpile-only -r tsconfig-paths/register src/index.ts

Но если в коде где то случается ошибка, например у одного из юзеров авторизация не прошла или чтото пошло не по плану, например jwt malformed, то вообще уже никому не зайти на сервер, потому что ошибка 500

pm2 ребутает всё, но проходит значительное количество времени

Дополнительно:

как можно сделать чтобы ошибки возникающие у одного юзера, не вешали весь сервер?

А вы ошибки что, вообще не обрабатываете?

  • WbICHA, код достался в наследство от покинувшего проект программиста, там отсутствовала обработка ошибок, исправляем
  • Нужно сделать так, чтобы "бэкэнд на тайпскрипт" не падал, а отдавал 500 конкретно косячному запросу и продолжал работу.
    Например можно в простейшем случае - завернуть весь колбэк обработки запроса в try/catch (если там есть асинхронные операции без await или блока .catch в Promise - то их внутренности тоже завернуть, содержимое каждой функции по отдельности).
    Эксепшен не должен вываливаться до верха стека вызовов.

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Мария Код Ответ

    Для игнорирования ошибок TypeScript в Node.js, можно воспользоваться настройками компилятора TypeScript. Для этого необходимо создать файл tsconfig.json в корне вашего проекта, если его еще нет, и добавить туда параметр "noEmitOnError" со значением false.

    Пример файла tsconfig.json:

    {
      "compilerOptions": {
        "noEmitOnError": false
      }
    }

    { "compilerOptions": { "noEmitOnError": false } }

    Этот параметр указывает TypeScript не останавливаться на первой же ошибке при компиляции кода, а продолжать процесс компиляции до конца. Таким образом, вы сможете увидеть все ошибки в вашем коде, даже если они не являются критическими.

    Помимо этого, вы также можете использовать комментарии "// @ts-ignore" перед строкой кода, которую нужно проигнорировать при проверке типов TypeScript. Например:

    // @ts-ignore
    const someVariable: string = 123; // TypeScript не будет ругаться на присвоение числового значения строковой переменной

    // @ts-ignore const someVariable: string = 123; // TypeScript не будет ругаться на присвоение числового значения строковой переменной

    Используйте эти способы в сочетании, чтобы управлять игнорированием ошибок TypeScript в вашем проекте Node.js. Не забывайте, что игнорирование ошибок может привести к непредвиденным проблемам в работе вашего приложения, поэтому используйте его с осторожностью и только в случае крайней необходимости.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно