Как приложение использует все маршруты из разных файлов

Я пытаюсь разделить свои маршруты, ранее я включил их в свой app.js

/backend/app.js

const express = require("express");
const router = require("./routes");
const status = require("./routes/status");
const register = require("./routes/register");
const login = require("./routes/login");


app.use('/', router);
app.use('/status', status);
app.use('/login', login);
app.use('/register', register);

Я понял, что это не идеально, так как я добавляю все больше и больше маршрутов позже, и app.js будет загрязнен ими

Что я хочу сделать сейчас, это просто импортировать index.js в app.js, и в основном этот индекс имеет все необходимые маршруты

/ Бэкэнд / маршруты / индекс

const routes = require("express").Router();
const root = require("./root");
const status = require("./status");
const register = require("./account/register");
const login = require("./account/login");


routes.use("/",  root);
routes.use("/login", login);
routes.use("/register", register);
routes.use("/status", status);
and now in the app.js i can just include the index

const routes = require("./routes");
app.use('/', routes);

но это не работает, я получаю 404 ошибку при попытке запросить маршрут входа

я экспортирую их вот так

module.exports = routes;

1 ответ

В вашем app.js

app.use('/', require('./backend/routes/index'))

Тогда в ваших маршрутах / указателе

import express from 'express'

const router = express.Router()

// GET /
router.get('/', function (req, res) {

})

// GET /countries
router.get('/countries', (req, res, next) => {

})

// POST /subscribe
router.post('/subscribe', checkAuth, generalBodyValidation, (req, res, next) => {

})

// All routes to /admin are being solved in the backend/routes/admin/index file
router.use('/admin', require('./backend/routes/admin/index'))

module.exports = router

Ваш админ / индексный файл может быть импортирован экспресс из 'экспресс'

const router = express.Router()

// POST /admin/login
router.post('/login', (req, res, next) => {

})

module.exports = router

При этом вы сможете выполнить POST-запрос к /admin/login.

Надеюсь, что это решит вашу проблему, если он пометит мой ответ как правильный, если не скажет мне, что пошло не так, и я решу это:D

Другие вопросы по тегам