我从node.js开始,正在创建一个简单的MVC框架.到目前为止,我有一个前端控制器(或"调度员",如果你愿意的话)工作.路由通过调度程序配置模块进行,如图所示.
我的问题是在代码之后的最后.另外,这是学习节点的练习,请不要建议express.js等.
dispatcherConfig.js:
var url = require('url');
(function() {
var dispatcherConfig = {
'/' : 'homeController',
'/index.html' : 'homeController',
'/sayHello.html' : 'helloController',
'404' : '404Controller'
};
module.exports.getController = function(request) {
var route = url.parse(request.url, true).pathname;
if(dispatcherConfig[route]) {
return dispatcherConfig[route];
}
return dispatcherConfig['404'];
}
}());
Run Code Online (Sandbox Code Playgroud)
这由dispatcher.js使用:
var dispatcherConfig = require('./config/dispatcherConfig');
(function() {
module.exports.dispatch = function(request, response) {
var requiredController = dispatcherConfig.getController(request);
var controller = require('./controllers/' + requiredController);
controller.doService(request, response);
}
}());
Run Code Online (Sandbox Code Playgroud)
以下是示例控制器的样子(也适用于花花公子) - homeController.js :(
现在请忽略内联视图代码)
(function() { …Run Code Online (Sandbox Code Playgroud)