控制器在Express.JS中有多个动作?

时间:2017-05-11 10:09:35

标签: node.js express

我正在通过Express进行路由。我的应用加载所有控制器,每个控制器都有多个动作。但是,在我的控制器中,Express Router只在我的控制器中加载默认操作,并与其他所有操作一起出错

  

无法GET / index / 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;

我是否必须通过" app" param to controller并使用它代替路由器模块?
谢谢

1 个答案:

答案 0 :(得分:0)

我通过在加载所有控制器时放置一个路径参数来解决我的问题。

fs.readdirSync('./controllers').forEach(function (file) {
    if(file.substr(-3) == '.js') {
        app.use('/'+file.substr(0, file.length - 3), require('./controllers/' + file));
    }
});

由于