Skip to content

Latest commit

 

History

History
55 lines (43 loc) · 4.49 KB

File metadata and controls

55 lines (43 loc) · 4.49 KB

Logging & Error Handling

При выставлении оценок используйте рекомендации RSSchool.

Максимальная оценка - 110 баллов.

  1. Логирование (как минимум url, query parameters, body) для всех запросов к серверу, а также кода ответа (status code) осуществляется с использованием middleware +20 баллов
  2. Добавлена централизованная обработка всех ошибок, которая включает отправку респонса с соответствующим кодом http статуса и их логирование с использованием middleware +20 баллов
  3. Добавлены обработка и логирование ошибок на событие uncaughtException +10 баллов
  4. Добавлены обработка и логирование ошибок на событие unhandledRejection +10 баллов
  5. Процесс логирования осуществляется единственным модулем (т.е. код, осуществляющий логирование, находится в одном модуле, при этом этот модуль может использоваться внутри других модулей) +20 баллов
  6. Логи записываются в файл +20 баллов
  7. Логи ошибок записываются в отдельный файл (либо только в него, либо в дополнение к записи в общий файл) +10 баллов

Штрафы:

  • Наличие изменений в тестах либо в workflow минус 100 баллов
  • Внесение изменений в репозиторий после дедлайна не считая коммиты, вносящие изменения только в Readme.md минус 30% от максимального балла за задание (для этого задания 33 балла)
  • За каждый непрошедший тест -10 баллов
  • За каждую ошибку линтера при запуске npm run lint на основе локального конфига, равно как и за ошибки компиляции на основе локального tsconfig -10 баллов (именно errors, не warnings)
  • Имеются явно указанные типы any, unknown -20 баллов за каждое использование
  • За отсутствие отдельной ветки для разработки -20 баллов
  • За отсутствие Pull Request -20 баллов
  • За неполную информацию в описании Pull Request (отсутствует либо некорректен один из 3 обязательных пунктов) -10 баллов
  • Меньше 3 коммитов в ветке разработки, не считая коммиты, вносящие изменения только в Readme.md-20 баллов

Подсказки:

  • (3 пункт) Для проверки пропишите throw Error('Oops!') ВНЕ инициализации express и ПОСЛЕ process.on('uncaughtException', () => {}). Например:
// Express initialization
const app = express().use(...);

// Exceptions catcher
process.on('uncaughtException'...);

// PUT IT HERE
throw Error('Oops!');

module.exports = app;

Как результат: вывод в консоли отловленной ошибки

  • (4 пункт) Для проверки пропишите Promise.reject(Error('Oops!')) ВНЕ инициализации express и ПОСЛЕ process.on('unhandledRejection', () => {}):
// Express initialization
const app = express().use(...);

// Exceptions catcher
process.on('unhandledRejection'...);

// PUT IT HERE
Promise.reject(Error('Oops!'));

module.exports = app;

Как результат: вывод в консоли отловленной ошибки