2

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

/users/detail/1

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

我的想法是提取用户并使用简单的 require 语句将其映射到 users.js 文件。但是,我如何通过简单地提取上面示例中的“详细信息”路由的动作部分来告诉 express 调用 details() 函数。我可以使用 eval() 但我听说这样做不安全?提前致谢。

4

1 回答 1

2

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

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

您可以通过替换为类似windowglobal节点

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
于 2013-02-17T06:21:19.810 回答