Что такое маршрутизация?
Маршрутизация в основном соответствует написанным вами функциям с запросами, которые получает сервер. Для запросов на получение, отображающих правильную страницу, и для запросов на отправку сообщений, обрабатывающих сообщение с правильной функцией.
Как проложить маршрут?
Я не собираюсь показывать вам самый простой способ, вместо этого я покажу вам одну из лучших практик.
Давайте начнем с нашего файла server / app.js
const routes = require('./api/routes'); app.use("/", routes);
Добавьте эти строки в свой файл server / app.js. Здесь мы говорим, что наша папка маршрутов будет в / api / routes /, и говорим express, чтобы использовать ее.
Иерархия папки маршрутов.
api/routes
├── index.js
├── root.js
├── account.js
В каждой папке маршрутов должен быть файл index.js. Файл index.js выполняет процесс подпрограммы, например, URL-адреса, начинающиеся с «/ account», маршрутизируются в account.js и т. Д.
Содержимое index.js
const express = require("express"); const rootRoutes = require('./root'); const accountRoutes = require('./account.js'); const router = express.Router(); router.use("/", rootRoutes); router.use("/account", accountRoutes); module.exports = router;
Здесь мы говорим, чтобы указать, что маршруты, начинающиеся с «/ account», будут обрабатываться в файле account.js, а другие маршруты будут обрабатываться в файле root.js.
Содержимое root.js
const express = require("express"); const mainController = require("../controllers/main"); const router = express.Router(); router .route("/") .get(mainController.landingPage); router .route("/dashboard") .get(mainController.dashboardPage); module.exports = router;
Здесь мы определяем один из наших контроллеров как mainController для доступа к его функциям. Затем мы направляем запросы на получение целевой страницы и страницы панели управления функциям обработки в нашем контроллере, который отображает отвечающую страницу.
Содержимое account.js
const express = require("express"); const accountController = require("../controllers/account"); const router = express.Router(); router .route("/login") .get(accountController.loginPage) .post(accountController.userLogin); router .route("/signup") .get(accountController.signupPage) .post(accountController.createUser); router .route("/logout") .get(accountController.logout); module.exports = router;
Здесь мы сделали то же, что и в root.js, за исключением обработки почтовых запросов.
Путь маршрутизации
Мы построили простой пример маршрутизации. Если кто-то отправляет запрос на получение в / account / login, этот запрос сначала обрабатывается файлом server / app.js, затем он передает этот запрос в файл api / routes / index.js, а файл index.js обрабатывает процесс подпрограммы и передает это запрос к файлу api / routes / account.js и, наконец, здесь этот запрос передается отвечающей функции в контроллере.
Подводить итоги
server/app.js -> api/routes/index.js -> api/routes/account.js Routing ends
Примечание: использование
'' ""
по-разному влияет на экспресс-маршрутизацию, поэтому следуйте моему шаблону.
Если у вас есть какие-либо вопросы или вы думаете, что я ошибаюсь в какой-то момент, не стесняйтесь спрашивать / говорить об этом в ответ.