我已經構建了幾個Backbone應用程序,並讚賞客戶端代碼結構和組織。我正在使用Express來進入Node開發,並且我不確定Express和Backbone如何在處理路由時一起工作。Backbone和Express路由器可以在Express應用中一起工作嗎?
回答
您需要了解Node和Backbone是相互獨立的。
- 節點爲服務器端(例如使用數據庫,API服務等)。
- Backbone是一個客戶端Javascript MVC框架,它爲您提供了一個用於組織客戶端Javascript應用程序的結構。 (在瀏覽器中的應用)
您可以在您的客戶端主幹網應用程序,它可以連接到任何後端任一節點時,Rails,PHP等..
更多info檢查客戶端的MVVM模式和Javascript框架。
http://backbonetutorials.com/why-would-you-use-backbone/
http://addyosmani.com/blog/understanding-mvvm-a-guide-for-javascript-developers/
你可以在後端使用Backbone模型和集合,以及視圖和事件,甚至可以使用一些調整的路由器 –
這是正確的。我只是給出了問題提供者的簡單信息來首先理解這個概念。 –
謝謝Serdar,我忘記解釋說我正在使用Express。我對Backbone和客戶端JavaScript有很深的理解。我不確定的是Express路由和Backbone路由可以共存。在Backbone應用程序中,我會編寫它,以便如果訪問者導航到/ foo,則foo路徑將位於我的路由器中,並執行可生成Backbone模型和視圖的函數。但是,在Express應用程序中,Express希望處理此路由並運行它自己的函數(req,res)。這些可以一起工作還是必須選擇一個? – AndrewHenderson
一個朋友給我的答案:
骨幹網使用哈希路線。例如http://yoursite.com/#foo
Express將使用傳統http://yoursite.com/foo
您可以使用彼此獨立的基於一個的路由器,其解決您的路徑 - 對客戶端功能的哈希路由和服務器端功能的傳統路線。
兩臺路由器都可以共存。
關於Backbone和Express可以如何協同工作的問題無法準確回答,因爲他們可以通過無數的方式協同工作。希望下面的一些信息可以幫助你做你想做的事情。
首先,你可以使用上www.example.com/foo客戶端(骨幹)(無#)路線 - 見Backbone.history.start()文檔pushState
選項。可以在客戶端和服務器端集成路由。不過,要確切地找到該怎麼做並不容易。
一些下這些鏈接信息的可以幫助你:
- https://github.com/developmentseed/bones
- https://github.com/SC5/backbone-serverside
- https://github.com/tysoncadenhead/backbone-on-express
- http://nerds.airbnb.com/weve-launched-our-first-nodejs-app-to-product
- http://blog.andyet.com/2011/feb/15/re-using-backbonejs-models-on-the-server-with-node/
你寫道,你有使用Backbone的經驗,但最近你正在轉移到Node上,所以我認爲你對其他框架是開放的,而不僅僅是Express。你可以考慮使用例如。 restify(除快速通道外)創建一個可與Backbone集成的RESTful服務。
也有整個框架,如Derby或Meteor,它們使用一個代碼庫覆蓋客戶端和服務器端,您可以共享的不僅僅是路由器。
(另外,我剛剛發現了今年(2013年)HTML5DevConf談話:Surviving Robots and Old Browsers by Server-side Backbone我沒有看過它尚未但它似乎你的問題很重要。)
- 1. 如何使angular2路由與express路由器一起工作?
- 2. 使用pushState進行Express和Backbone路由
- 3. 可以將Express路由用作Node.JS應用程序中的MVC控制器嗎?
- 4. Angular和Express路由在mean.js應用中如何協同工作?
- 5. 可以用batman.js和express嗎?
- 6. 在Express JS for Ajax中設置REST路由只能與Backbone一起使用
- 7. Express和Angular路由
- 8. node.js,backbone,socketio和express和coffee腳本都一起嗎?
- 9. 在Express路由器中使用mongoDB
- 10. Nodejs,Express,路由
- 11. Express中的白名單路由可以應用基本認證/中間件嗎?
- 12. 覆蓋Express路由器
- 13. NodeJs Express路由器錯誤
- 14. node.js和express - 調試路由
- 15. 在Express和MEAN堆棧中路由
- 16. 如何配置Express路由器和ES6?
- 17. Node.js和Express不起作用?
- 18. 如何獲得Backbone路由器+ Kendo UI Mobile(tabstrip)一起工作?
- 19. 在Express路由器路由中確定路徑
- 20. 使用express和mongoose的Node.js restful webservice。路由不工作
- 21. 一起使用express和hapijs
- 22. Express JS路由器中間件
- 23. Expressjs修改express中的req.params路由器
- 24. Express/node.js路由器中的通配符
- 25. TestDriven.NET可以與VS Express一起使用嗎?
- 26. Android的Mono可以與Visual Web Developer Express一起使用嗎?
- 27. Microsoft Visual C#2008 Express可以與.NET 4一起使用嗎?
- 28. 使用Node.js和Express進行路由
- 29. 如何在Express中路由動態和靜態路由
- 30. 是否可以在Express中自動路由?
Backbone.Router是客戶端路由,即:使用html5歷史API在通過ajax更新頁面時更改URL。你想做什麼? – jordanj77