Работа принимается
Статус коды ошибок
Если в любом из запросов что-то идёт не так, сервер возвращает ответ с ошибкой и соответствующим ей статусом:
- 400 — переданы некорректные данные в метод создания карточки, пользователя, обновления аватара пользователя и профиля;
- 401 — передан неверный логин или пароль;
- 401 — эту ошибку возвращает авторизационный middleware, если передан неверный JWT;
- 404 — не найдена карточка или пользователь;
- 409 — при регистрации указан email, который уже существует на сервере;
- 500 — ошибка по умолчанию. Сопровождается сообщением «На сервере произошла ошибка».
Перед отправкой ошибки проверьте её, например так:
const ERROR_CODE = 400;
if(err.name === 'SomeErrorName') return res.status(ERROR_CODE).send(...)
Настройка и деплой бэкенда
- Все запросы и ответы записываются в файл request.log. Подойдёт вариант, если студент реализовал запись не в файл, а в stdout или сторонний сервис логов.
- Все ошибки записываются в файл error.log. Подойдёт вариант, если студент реализовал запись не в файл, а в stdout или сторонний сервис логов.
- Файлы логов не должны добавляться в репозиторий.
- IP-адрес и URL сервера указаны в README.md.
- К серверу можно обратиться по IP-адресу из README.md.
- К домену из README.md можно обратиться по http и по https.
- В режиме разработки (когда process.env.NODE_ENV !== 'production') код запускается и работает. Без файла .env ошибки не происходит.
- Если в коде студента есть секретный ключ для верификации JWT в режиме разработки, он не должен верифицировать JWT продакшена. Чтобы проверить JWT, нужно зайти в папку проекта с установленным jsonwebtoken и исполнить этот код:
const jwt = require('jsonwebtoken'); const YOUR_JWT = ''; // вставьте сюда JWT, который вернул публичный сервер const SECRET_KEY_DEV = ''; // вставьте сюда секретный ключ для разработки из кода try { const payload = jwt.verify(YOUR_JWT, SECRET_KEY_DEV); console.log('\x1b[31m%s\x1b[0m', ` Надо исправить. В продакшне используется тот же секретный ключ, что и в режиме разработки. `); } catch (err) { if (err.name === 'JsonWebTokenError' && err.message === 'invalid signature') { console.log( '\x1b[32m%s\x1b[0m', 'Всё в порядке. Секретные ключи отличаются' ); } else { console.log( '\x1b[33m%s\x1b[0m', 'Что-то не так', err ); } } - После GET-запроса на URL /crash-test сервер самостоятельно восстанавливается и продолжает принимать другие запросы.
- Сертификат выпущен и активен. Это можно проверит по ссылке: https://www.sslshopper.com/ssl-checker.html.
Работа отклоняется от проверки
- При сборке или запуске проекта возникают ошибки.
- Часть функциональности не реализована, например, бэкенд не задеплоен на удалённый сервер.
- Работа содержит вопросы или просьбы о помощи к ревьюеру.
- На повторных итерациях не исправлены критические замечания.