-1
我正在通過Express進行路由。我的應用程序加載所有控制器,每個控制器都有多個操作然而,在我的控制器,快速路由器只加載默認的動作在我的控制器和錯誤與所有其他Express.JS中的多動作控制器?
不能得到/索引/ action1234
對於更具體的,這是我的代碼。
在app.js
fs.readdirSync('./controllers').forEach(function (file) {
if(file.substr(-3) == '.js') {
app.use(require('./controllers/' + file));
}
});
控制器路由index.js
var express = require('express');
var router = express.Router();
router.get('/', function(req, res) {
res.send("index/index");
});
router.get('/:action', function(req, res) {
res.send("index/"+req.params.action);
});
module.exports = router;
我必須通過「應用程序」參數到控制器,並使用這個代替路由器模塊的?
謝謝
嗚嗚....實際上你的應用程序處理'/ action1234'而不是'/索引/ action1234' – mJehanno
是的,我的錯誤是,這不是嵌套的路由器。 – carboncrystal
你可以在'app.use(require('./ controllers/+ file))'中放入'/ index'作爲第一個參數;'但是它會爲你的所有未來路由或者你將所有的「前綴」以與控制器目錄中的文件相同的順序在數組中路由並遍歷它。但它意味着你必須在每次創建控制器時填充這個數組。 – mJehanno