javascript - 关于在 JavaScript 中创建微框架的建议

标签 javascript node.js frameworks dom-events

我想知道在 node.js 之上创建框架需要哪些步骤。 我相信这是一种很好的学习方式,这就是我这样做的原因!

我一直在检查其他微框架和更大的框架,但我无法理解从哪里开始。我希望得到您的建议。

编辑:MVC 框架,如 Sinatra、Merb、Rails。

最佳答案

对于 MVC 框架,基本概念是这样的(请原谅它的简单性):

var view = 'I say, "{{first}} {{second}}".';
var model = {
    first: 'hello',
    second: function(){
        return 'world';
    }   
};

for(item in model){     
    var regex = new RegExp('{{' + item + '}}', 'gi');
    if(typeof(item) == 'function')
        view = view.replace(regex, model[item]());
    else
        view = view.replace(regex, model[item]);
}
console.log(view);

尽可能简单地开始并添加小的增强功能:

  • 将 View /模板存储为文件。这使您有机会体验 node.js 的异步文件 I/O。
  • 添加对更复杂模型的支持——重复项/数组、包含对象的对象
  • 在模板中添加对模板的支持
  • 从外部数据源获取您的模型。 CouchDB可能会很有趣。
  • 添加适当的 Controller - 这些对象应该知道哪些模型与哪些 View 相关,以及如何将它们拼接在一起
  • 将您的 Http 请求 URL 映射到 Controller 和操作 -/person/55 可能会从您的数据存储库中获取 ID 为 55 的人,/person/add 可能会打开一个 UI 来添加一个人 - 两者都使用带有 View 的个人 Controller 显示以进行适当的操作。

看看mustache.js用于小型模板引擎。请注意,他们的术语在示例和代码中与我的不同。我称之为 View 的东西,他们称之为模板,我称之为模型的东西,他们称之为 View 。这是一件小事,但可能会造成混淆。

其他资源:

关于javascript - 关于在 JavaScript 中创建微框架的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3720120/

相关文章:

javascript - 捕获 "open link in new tab"和 "Open link in new window"事件

javascript - jQuery/在另一个元素内附加一个 div 元素并定位/控制父元素

node.js - Express.js 可以设置 localhost :3000 and localhost:3000/as different routes?

android - 隐藏状态栏

javascript - 为什么这个正则表达式匹配?

node.js - 从另一个容器连接 couchdb 容器

javascript - 如何在浏览器中使用 npm 模块?甚至可以在本地(PC)中使用它们?

php - 提供网站 API 访问的框架?

twitter - 初学者应该选择哪种框架来进行Twitter混搭?

javascript - 跨域 XMLHttpRequest,Access-Control-Allow-Origin header 和 $_SERVER ['HTTP_ORIGIN' ]