Как поставить роутер внутри роутера - PullRequest
1 голос
/ 02 ноября 2019

Я создал страницу / admin, которая сама была перенаправлена ​​со страницы index.js. Теперь я хочу получить доступ к админ / добавить через маршрутизатор. Однако я не могу установить маршрутизатор внутри маршрутизатора.

Вот мой код администратора

var express = require('express');
var router = express.Router();

const addNewProductRouter = require('./../controller/admin-controllers/add-new-product');
router.use('/add', addNewProductRouter );

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

    if (req.session.userId){
        //Assigns user id to be used in whole admin area
        userId = req.session.userId;

        console.log("Session test from admin " + userId)
        res.render('./../views/admin/admin.pug');

    } else {
        res.send("You need to login first!");
    }
})

Вот мой код добавления нового продукта

const express =require('express');
const router = express.Router();

router.post('/', (req,res) => {
    console.log("I reached add side");
})

module.exports = router;

1 Ответ

2 голосов
/ 02 ноября 2019

Допустим, у вас есть app.js как этот

...
router.use('/admin', DashboardRouter );
router.use('/admin/product', ProductRouter );
router.use('/admin/another-route', AnotherRouteRouter );

Если вы хотите сделать admin в качестве префикса для всех маршрутов, вы можете сделать

router.use('/', DashboardRouter );
router.use('/product', ProductRouter );
router.use('/another-route', AnotherRouteRouter );

затем

app.use('/admin', router);

И ваш маршрутный файл продукта будет иметь все суб-маршруты

const express =require('express');
const router = express.Router();

router.post('/add', (req,res) => {
    console.log("Add route");
})

router.delete('/delete/:id', (req,res) => {
    console.log("Delete route");
})

module.exports = router;

Таким образом, ваши маршруты будут выглядеть следующим образом:

/ admin

/ admin / product/ add

/ admin / product / delete

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...