76
одному файлу на каждый участок работы с приложением: users.js, teams,js,
sprints.js, stories.js, tasks.js, badges.js. В каждом их этих файлов создаётся
новый объект router с помощью встроенной функции фреймворка express:
express.Router(). К этим роутам будут привязываться адреса запросов с
клиента через функцию, соответствующей типу запроса. В случае GET-
запроса строка будет выглядеть как ‘router.get('/', …)’, а в случае POST-
запроса - ‘router.post('/', …)’. После настройки всех необходимых для
корректной работы приложения роутов в конце каждого из этих файлов
прописывается экспорт для их использования другими файлами:
‘module.exports = router’. Именно это значение будет использовано в
основном файле приложение app.js, где каждый файл с роутингом будет
импортирован и встроен в систему обработки запросов. Первым шагом для
этого является использование метода node.js – require(): ‘const usersRoutes
= require('./api/routes/users')’, после чего эту переменную нужно включить в
проект: ‘app.use('/api/users', usersRoutes)’. Такую же операцию нужно
произвести с каждым из файлов, созданных в папке routes.
В примерах адресом запроса является один косой слэш, и это
означает, что эта функция будет обрабатывать запросы, идущие в корень
соответствующего роута. Например, при регистрации нового пользователя,
со стороны клиента идёт POST-запрос на url ‘{адрес сайта}/users. Этот
запрос попадёт в корень роутов пользователей. Если с клиента придет
POST-запрос ‘{адрес сайта}/users/{userId}/badges’, это будет означать, что
запрос необходимо обработать другой функцией.
В синтаксисе node.js, чтобы не пихать весь код в одну кучу в файлах
роутов, имеется возможность указания конкретной функции, которую
можно импортировать из другого файла, например: ‘router.get('/',
checkAuth, UsersController.users_get_list)’. В примере мы видим