Что такое маршрутизация?

Маршрутизация в основном соответствует написанным вами функциям с запросами, которые получает сервер. Для запросов на получение, отображающих правильную страницу, и для запросов на отправку сообщений, обрабатывающих сообщение с правильной функцией.

Как проложить маршрут?

Я не собираюсь показывать вам самый простой способ, вместо этого я покажу вам одну из лучших практик.
Давайте начнем с нашего файла 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

Примечание: использование

'' ""

по-разному влияет на экспресс-маршрутизацию, поэтому следуйте моему шаблону.

Если у вас есть какие-либо вопросы или вы думаете, что я ошибаюсь в какой-то момент, не стесняйтесь спрашивать / говорить об этом в ответ.