我有一个我正在构建的应用程序非常像craigslist,但功能有限.我通常会将Rails用于这种应用程序,但我对学习nodejs/backbonejs框架很感兴趣,看起来这是一个很好的机会来学习它.
我不确定nodejs和/或backbonejs如何适合这个解决方案?我不一定要使用rails,如果有意义,我可以使用nodejs和backbonejs.
谢谢
你当然可以使用Node.js或Rails或两者兼容Backbone.js - 我已经使用了堆栈与这些技术的全部或组合,它们很棒.选择使用哪些应该取决于您正在构建的内容,并且在较小程度上取决于您对每种技术的舒适度.
用节点替换Rails
Node.js可以轻松替换Rails的功能,即与数据库通信,包含模型逻辑,服务页面和资产以及控制路由.有大量的模块可用于此.一个常见的解决方案是使用Express(一个简单的Sinatra类型的Web框架)来提供页面和处理模板,使用ODM/ORM来处理数据库对象.还有更广泛的类似铁轨的框架,如Geddy.
我将Node视为Rails的直接替代品
如果您只是想要Rails的功能,请使用Rails.Ruby/Rails代码看起来更干净,在我看来更容易管理,它更成熟(随意火焰......).如果你提供很多不同的页面,Rails可以很好地组织事情.但是,如果您正在制作单页应用程序(这是Backbone的主要用例之一),那么大部分Rails包都是不必要的 - 您只需要模型逻辑和数据库交互.在这种情况下,具有ORM和RESTful路由的Express(Node)或Sinatra(Ruby)之类的东西将在后端和前端之间进行通信.
使用Node添加功能Node
的更具吸引力的用例适用于具有实时或多人游戏方面的站点; Node非常适合并发和异步.如果您有客户端相互发送数据而不重新加载页面或数据从服务器推送到客户端而没有其他页面加载(使用Socket.io这是一个很棒的模块),请使用Node.同样,这是一个适用于Backbone迎合的单页或高交互界面的用例.