0

我使用 MVC 框架使用 Ruby on Rails 构建了一个测验应用程序。我想用纯 JavaScript 做基本相同的事情,并使用 jQuery 为移动设备和特殊效果添加更多功能,因为 jQuery 就是这样很棒。

我在TodoMVC 之类的网站上查看了有关框架的比较,但我不知道这些框架的功能。为什么他们使用Collection而不是Controller在他们的 MVC 定义中?在我看来,这些只是客户端框架。我会使用 Backbone.js 之类的东西来进行客户端工作,而 Node.js 用于服务器端吗?

我只是不确定如何使用纯 JavaScript 函数进行开发。我需要创建一个数据库来存储测验和用户信息,并且能够在查看大多数页面时访问该数据库,所以我觉得 MVC 框架是最好的方法。

关于从哪里开始有什么建议吗?

4

3 回答 3

0

如果您正在寻找类似 JavaScript MVC 的框架,请查看 Express.js http://expressjs.com

Express.js 更像 Sinatra 而不是 Rails,但它会为您在服务器端打下良好的基础。

于 2012-12-28T22:24:52.740 回答
0

哇,这是一个相当广泛的帖子;让我们一次处理一件事情

为什么他们在 MVC 定义中使用 Collection 而不是 Controller?

确切的答案因库而异,但一个简单的答案是大多数 Javascript 应用程序中的控制器并不真正需要任何框架。它们可以是原始的 Javascript 并且工作得很好,因为它们通常不是很复杂。

此外,您可能认为是“控制器”的部分通常是单独提供的。主要的例子是 Backbone 的 Router 对象:它类似于 Rails 中的隐含路由(和 routes.rb),或 Django 中的 urls.py。正如那些框架不认为路由是“控制器”的一部分一样,Backbone(和类似的框架)将路由作为一个单独的部分提供......即使它可能属于 MVC 中的 C 语言。

类似地,jQuery 提供的大部分 DOM 操作功能通常属于 MVC 应用程序的控制器,因此从某种意义上说,jQuery 可以帮助您构建控制器;Backbone.Model 帮助您构建模型的方式并不明确。

我会使用 Backbone.js 之类的东西来进行客户端工作,而 Node.js 用于服务器端吗?

那真的是苹果和橘子;用服务器端的术语来说,Backbone 更像 Rails,而 Node 更像 Ruby(或 Mongrel 之类的)。所以是的,一个是客户端,另一个是服务器端,但差异远不止于此。

关于从哪里开始有什么建议吗?

选择一个框架,让你的手变脏!说真的,你可以花几个小时阅读不同框架的评论,但最终还是比开始时更接近于做出决定(我是根据经验说话)。但是,如果您只是选择一个并尝试它,您可能会发现它要么与您“凝胶”,要么不会很快。

就个人而言,我建议从 Backbone 开始,因为 A)它现在非常流行,并且 B)我有偏见:我每天都使用它并且喜欢它。此外,它可能很适合您,因为它是由 CoffeeScript 人创建的(CoffeeScript 是他试图使 Javascript 更像 Ruby)。然而,Ember.js 最近也很流行,Hector 提到了 ExpressJS,我对此一无所知,但可能很酷。

但关键是,选择一个,打个招呼,或者更复杂一点的东西,比如介绍性教程(Backbone 有一个围绕 To Do 应用程序的教程)。用它编写几个小时的代码会比我(或 Stack Overflow 上的任何其他人)更能告诉你它是否适合你。

于 2012-12-28T23:37:20.127 回答
0

我肯定会看看Google Closure。我已经开始在个人宠物项目中将它与LimeJs一起使用,并且真的被它的 编译器和模块化设计所吸引。

它不是真正的MVC,但由于 JavaScript 应该更多地以异步方式来考虑,我倾向于将其更多地视为事件驱动,而不是简单的请求-管道-响应方式。

因此,客户端的闭包库jQuery / jQuery UI(都在Google API上)和服务器端的ExpressJs。另外,看看这个框架对比图,你可能会觉得很有趣。

于 2012-12-29T00:12:29.580 回答