Backbone和Express路由器可以在Express应用中一起工作吗?

我已经构build了几个Backbone应用程序,并赞赏客户端代码结构和组织。 我正在使用Express来进入Node开发,我不确定Express和Backbone如何在处理路由时一起工作。

您需要了解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/

一位朋友给了我答案:

骨干使用散列路由。 例如http://yoursite.com/#foo

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

您可以使用彼此独立的路由器,这些路由器是您寻址path的路由器 – 客户端function的散列路由和服务器端function的传统路由。

两台路由器都可以共存。

您关于Backbone和Express如何协同工作的问题无法准确回答,因为他们可以通过无数的方式协同工作。 希望下面的一些信息可以帮助你做你想做的事情。

首先,您可以在客户端(Backbone)上使用www.example.com/foo(no#)路由 – 请参阅Backbone.history.start()文档中的pushState选项。 可以在客户端和服务器端集成路由。 不过,要find如何去做并不容易。

这些链接下的一些信息可以帮助您:

你写道,你已经有了Backbone的经验,但是你最近正在转移到Node上,所以我认为你对其他框架是开放的,而不仅仅是Express。 你可以考虑使用例如。 除了Express外,还可以重新定义一个可以与Backbone集成的RESTful服务。

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

(另外,我刚刚发现今年的(2013)HTML5DevConf谈话: 通过服务器端骨干幸存的机器人和旧浏览器 。我还没有看到它,但它似乎与您的问题非常相关。