[英]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.