Nodejs / rails /骨干架构

时间:2011-11-29 05:27:43

标签: node.js ruby-on-rails-3.1 backbone.js

我有一个我正在构建的应用程序非常像craigslist,但功能有限。我通常会将Rails用于这种应用程序,但我对学习nodejs / backbonejs框架很感兴趣,看起来这是一个很好的机会来获取它。

我不确定nodejs和/或backbonejs如何适合这个解决方案?我不一定要使用rails,如果有意义,我可以使用nodejs和backbonejs。

由于

1 个答案:

答案 0 :(得分:6)

你当然可以使用Node.js或Rails或两者兼容Backbone.js - 我已经使用了这些技术的全部或组合的堆栈,它们很棒。选择使用哪些应该取决于你正在建造什么,并在较小程度上取决于你对每种技术的舒适程度。

用节点替换Rails
Node.js可以轻松替换Rails的功能,即与数据库通信,包含模型逻辑,服务页面和资产以及控制路由。有大量tons of modules可用于此。一个常见的解决方案是使用Express(一个简单的Sinatra类型的Web框架)来提供页面和处理模板,使用ODM / ORM来处理数据库对象。还有更广泛的类似轨道的框架,例如Geddy。

我将Node视为Rails的直接替代品
如果您只是想要Rails的功能,请使用Rails。 Ruby / Rails代码看起来更清晰,在我看来更容易管理,而且它更成熟(随意火焰...... )。如果你提供很多不同的页面,Rails可以很好地组织事情。但是,如果您正在制作单页应用程序(这是Backbone的主要用例之一),那么大部分Rails包都是不必要的 - 您只需要模型逻辑和数据库交互。在这种情况下,具有ORM和RESTful路由的Express(Node)或Sinatra(Ruby)之类的东西将在后端和前端之间进行通信。

添加了Node 的功能 Node的更具吸引力的用例适用于具有实时或多人游戏方面的站点; Node非常适合并发和异步。如果您有客户端向对方发送数据而不重新加载页面或数据从服务器推送到客户端而没有其他页面加载,则使用Node(执行此操作的一个很棒的模块是Socket.io)。同样,这是一个用于Backbone迎合的单页或高交互接口的用例。