【问题标题】:Advice on creating a micro-framework in JavaScript关于在 JavaScript 中创建微框架的建议
【发布时间】:2011-04-12 19:37:00
【问题描述】:

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

我一直在检查其他微型框架和更大的框架,但我无法理解从哪里开始。我想听听你的建议。谢谢。

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

【问题讨论】:

  • 一个微框架做什么?
  • @MooGoo:因为他说的是服务器端代码,所以它可能是一个 MVC 或 MVVM 框架。像 Rails 或 Django 或 Catalyst。
  • 谢谢,但这并不能解释如何去做! ://
  • 如果你完成了这个,请告诉我。 ;)

标签: javascript frameworks javascript-events node.js


【解决方案1】:

对于 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);

尽可能简单地开始并添加一些小的改进:

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

看看mustache.js 的小型模板引擎。请注意,他们的术语在示例和代码中与我的不同。我称之为view,他们称之为template,我称之为model,他们称之为view。这是一件小事,但可能会令人困惑。

其他资源:

【讨论】:

  • 哇,非常好的评论!你有什么资源可以帮助我更好地学习这个吗?如果没有任何与 JavaScript 相关的东西,也许是与 Sinatra 相关的东西,Rails 可能会有所帮助!谢谢科尔宾。
  • @donald - 添加了一个大的节点模块列表。玩得开心。
猜你喜欢
  • 2011-11-04
  • 2016-07-10
  • 1970-01-01
  • 2015-08-25
  • 1970-01-01
  • 2011-06-11
  • 1970-01-01
  • 2014-07-17
  • 2011-12-23
相关资源
最近更新 更多