我开始与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'];
}
}());
这是使用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);
}
}());
这里是一个样本控制器的样子(工作花花公子太) - homeController.js:
(现在请忽略内嵌视图代码)
(function() {
var homeController = {
doService: function(request, response) {
response.write('<form action="/sayHello.html" method="GET">' +
'<input id="name" name="name" size="20" />' +
'<input type="submit" value="Submit" />' +
'</form>');
}
}
module.exports.doService = function(request, response) {
return homeController.doService(request, response);
}
}());
该路由工作得很好。 我有控制器轻松连接最多的URL模式,而且我模仿Spring的多动作控制器类型中,通过进一步检查请求对象。
三件是需要在这里做了明显的事情是:
- 创建视图对象
- 创建模型对象
- 结合视图和模型
问题 :
- 在MVC(弹簧至少),它是结合具有一个模型的视图控制器。 这是做的最好的方法是什么? 如果我保持分开单独的配置描述结合到什么型号什么看法,以及控制器仅路由到一个视图。 这是错的,而不是MVC?
- 什么是代表node.js的景色的好办法? 由于它在很大程度上基于模板的,有什么模板选项所提供(成熟的)?
- 如果我负载静态送达的文件(比如CSS文件,通过文件加载读入内存),和我一直在全球/应用范围的内容的引用,则后续请求可以直接从内存中提供服务,导致惊人速度,是这个假设是正确的? 事实上,我们可以保证进入节点服务器(这将触发文件中读取的内容被加载到MEM)的第一个请求后,所有后续的请求将被从内存送达(这样的静态内容)。
- 什么是原始的Node.js抓住POST数据的低电平(框架少)的方式?
谢谢。