6

我已经构建了几个 Backbone 应用程序,并欣赏客户端代码结构和组织。我正在使用 Express 进行 Node 开发,但我不确定 Express 和 Backbone 如何在处理路由时协同工作。

4

3 回答 3

3

您需要了解 Node 和 Backbone 是相互独立的。

  • 节点用于服务器端(例如使用数据库、api 服务等)。
  • Backbone是一个客户端 Javascript MVC 框架,它为您提供组织客户端 Javascript 应用程序的结构。(浏览器中的应用程序)

您可以在客户端拥有一个 Backbone 应用程序,它可以连接到任何后端,无论是 Node、Rails、PHP 等......

有关更多信息,请查看客户端的 MVVM 模式和 Javascript 框架。

http://backbonetutorials.com/why-would-you-use-backbone/

http://addyosmani.com/blog/understanding-mvvm-a-guide-for-javascript-developers/

于 2012-12-17T12:28:37.477 回答
2

一位朋友给了我答案:

骨干网使用哈希路由。例如http://yoursite.com/#foo

Express 将使用传统的http://yoursite.com/foo

您可以使用彼此独立的路由器,该路由器基于您的路径 - 用于客户端功能的哈希路由和用于服务器端功能的传统路由。

两个路由器可以共存。

于 2012-12-18T20:12:18.133 回答
1

您关于 Backbone 和 Express 如何协同工作的问题无法真正准确地回答,因为它们可以协同工作的方式实在数不胜数。希望下面的一些信息可以帮助你做你想做的事。

首先,您可以在客户端 (Backbone) 上使用 www.example.com/foo (no #) 路由 - 请参阅Backbone.history.start()文档pushState中的选项。可以在客户端和服务器端集成路由。但是,要找到确切的方法并不容易。

这些链接下的一些信息可能会对您有所帮助:

您写道您有使用 Backbone 的经验,但您最近正在迁移到 Node,所以我假设您对其他框架开放,而不仅仅是 Express。您可以考虑使用例如。restify(除了 Express)来创建一个可以与 Backbone 集成的 RESTful 服务。

还有像DerbyMeteor这样的完整框架,它们使用一个代码库同时覆盖客户端和服务器端,您可以共享的不仅仅是路由器。

(另外,我刚刚发现今年的(2013 年)HTML5DevConf 演讲:Surviving Robots and Old Browsers by Server-side Backbone。我还没有看过,但它似乎与您的问题非常相关。)

于 2013-09-04T03:59:38.190 回答