簡體   English   中英

怎么把路由器放在路由器里面

[英]How to put a router inside a router

我創建了一個 /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;

假設你有這樣的 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;

因此,您的路線將如下所示:

/行政

/管理員/產品/添加

/管理員/產品/刪除

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM