Express.js – 类似于ASP.NET的MVC路由

我正在尝试为Express设置一个MVC架构。 我试图完成的是一个接近ASP.NET的路由机制。 例如对于以下路线:

/users/detail/1 

express应该调用名为users.js的控制器目录下的模块。 users.js模块内是一个名为detail的函数。 在函数内部,我可以简单地获取请求参数来获取用户的id。

我的想法是提取用户并使用简单的require语句将其映射到users.js文件。 但是我怎么能通过简单地提取上面例子中的'detail'的路由的action部分来调用details()函数。 我可以使用eval(),但我听说这不是安全的事情吗? 提前致谢。

在浏览器端JavaScript中,通常可以执行以下操作

 function a () { console.log('called a'); window['a'](); // called a 

你可以用类似于globalreplacewindow来做类似的节点

 function a () { console.log('called a'); global['a'](); // called a 

但是,如果你从另一个文件中提取这个函数,它将会有所不同。 假设您有以下文件a_module.js

 exports.a = function () { console.log('a called'); } 

然后在你的主文件,你可以做到以下几点:

 var a_mod = require('./a_module.js'); a_mod['a'](); // a called