Как сделать игнорирование ошибок typescript (node js)?
всем привет!
Подскажите как можно сделать чтобы ошибки возникающие у одного юзера, не вешали весь сервер?
Сейчас наш сайт работает на Vue, бэкенд на TypeScript, запускаем разработку таким кодом:
tsnd --inspect --ignore-watch node_modules --respawn --transpile-only -r tsconfig-paths/register src/index.ts
Но если в коде где то случается ошибка, например у одного из юзеров авторизация не прошла или чтото пошло не по плану, например jwt malformed, то вообще уже никому не зайти на сервер, потому что ошибка 500
pm2 ребутает всё, но проходит значительное количество времени
Дополнительно:
как можно сделать чтобы ошибки возникающие у одного юзера, не вешали весь сервер?
А вы ошибки что, вообще не обрабатываете?
Нужно сделать так, чтобы "бэкэнд на тайпскрипт" не падал, а отдавал 500 конкретно косячному запросу и продолжал работу.
Например можно в простейшем случае - завернуть весь колбэк обработки запроса в try/catch (если там есть асинхронные операции без await или блока .catch в Promise - то их внутренности тоже завернуть, содержимое каждой функции по отдельности).
Эксепшен не должен вываливаться до верха стека вызовов.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для игнорирования ошибок 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 не будет ругаться на присвоение числового значения строковой переменной
Используйте эти способы в сочетании, чтобы управлять игнорированием ошибок TypeScript в вашем проекте Node.js. Не забывайте, что игнорирование ошибок может привести к непредвиденным проблемам в работе вашего приложения, поэтому используйте его с осторожностью и только в случае крайней необходимости.