Ich habe mehrere Backbone-Apps erstellt und schätze die clientseitige Code-Struktur und Organisation. Ich gehe in die Knotenentwicklung mit Express und bin mir nicht sicher, wie Express und Backbone bei der Verarbeitung von Routen zusammenarbeiten können.Können Backbone- und Express-Router in einer Express-Anwendung zusammenarbeiten?
Antwort
Sie müssen verstehen, dass Knoten und Backbone unabhängig voneinander sind.
- Knoten ist für die serverseitige (zum Beispiel mit einer Datenbank arbeiten, api dienen etc.).
- Backbone ist ein Client-seitiges Javascript MVC-Framework, das Ihnen eine Struktur für die Organisation Ihrer clientseitigen Javascript-Anwendung gibt. (Die Anwendung im Browser)
Sie können eine Backbone-Anwendung haben in der Client-Seite, und es kann bis zu jedem Back-End entweder Knoten Haken, Rails, PHP etc ...
Weitere Informationen prüfen MVVM-Muster und Javascript-Frameworks auf der Client-Seite.
http://backbonetutorials.com/why-would-you-use-backbone/
http://addyosmani.com/blog/understanding-mvvm-a-guide-for-javascript-developers/
Sie könnten Backbone-Modelle und Sammlungen und Ansichten und Ereignisse auf der Back-End-Seite und wahrscheinlich sogar der Router mit einigen Anpassungen verwenden –
Das ist korrekt.Ich gab nur einfache Informationen für die Fragesteller, um das Konzept zuerst zu verstehen. –
Danke Serdar, ich habe vergessen zu erklären, dass ich Express benutze. Ich habe ein starkes Verständnis von Backbone und clientseitigem JavaScript. Was ich nicht sicher bin, ist, wie Express-Routing und Backbone-Routing koexistieren können. In einer Backbone-App würde ich es so schreiben, dass, wenn ein Besucher zu/foo navigiert, der foo-Pfad in meinem Router wäre und eine Funktion ausführen würde, die Backbone-Modelle und -Sichten erzeugen würde. In einer Express-App möchte Express jedoch mit diesem Routing umgehen und eine eigene Funktion ausführen (req, res). Können diese zusammenarbeiten oder muss ich eine auswählen? – AndrewHenderson
Ein Freund gab mir die Antwort:
Backbone verwendet Hash-Routen. Zum Beispiel http://yoursite.com/#foo
Express wird die traditionelle Verwendung http://yoursite.com/foo
Sie die Router eine unabhängig von anderen basierend man verwenden kann, die man auf den Weg zu adressieren - eine Hash-Route für die clientseitige Funktionen und dem traditionellen Weg für serverseitige Funktionalität .
Beide Router können koexistieren.
Ihre Frage, wie Backbone und Express zusammenarbeiten können, kann nicht wirklich genau beantwortet werden, weil es wirklich unzählige Möglichkeiten gibt, wie sie zusammenarbeiten können. Hoffentlich können einige der folgenden Informationen Ihnen helfen, das zu tun, was Sie tun möchten.
Zu allererst Sie können Verwendung www.example.com/foo (keine #) Routen auf der Client-Seite (Backbone) - siehe pushState
Option in Backbone.history.start() Dokumentation. Es ist möglich, die Routen auf der Clientseite und auf der Serverseite zu integrieren. Es ist jedoch nicht einfach, genau das zu finden.
Einige der Informationen unter diesen Links können Sie helfen:
- 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/
Sie haben geschrieben, dass Sie Erfahrung mit Backbone haben, aber Sie bewegen sich in letzter Zeit zu Node, daher nehme ich an, dass Sie für andere Frameworks als nur Express offen sind. Sie können in Erwägung ziehen, z. (zusätzlich zu Express), um einen REST-fähigen Dienst zu erstellen, den Sie in Backbone integrieren können.
Es gibt auch ganze Frameworks wie Derby oder Meteor, die sowohl Client-Seite und Server-Seite mit einer Code-Basis abdecken und Sie können viel mehr als nur die Router teilen.
(Außerdem habe ich gerade in diesem Jahr gefunden (2013) HTML5DevConf Diskussion:. Surviving Robots and Old Browsers by Server-side Backbone Ich habe es noch nicht gesehen, aber es scheint, um Ihr Problem sehr relevant.)
- 1. Können Animation und Farbverläufe zusammenarbeiten?
- 2. Können sIFR und LavaLamp zusammenarbeiten?
- 3. Können jQuery und Mootools zusammenarbeiten?
- 4. Können Razor engine und ember.js zusammenarbeiten?
- 5. Wie können Sie unittest2 und coverage.py zusammenarbeiten?
- 6. WSIT, Maven und wsimport - Können sie zusammenarbeiten?
- 7. Wie können OSGI und JSF zusammenarbeiten?
- 8. Können Regex-Gruppen und * Wildcards zusammenarbeiten?
- 9. phing und phpUnderControl ... zusammenarbeiten
- 10. Können Java Netbeans Desktop-Anwendung und Maven zusammenarbeiten?
- 11. Können Spring und SWT für Java Desktop-Anwendungen zusammenarbeiten?
- 12. OpenUI5 mit Spring Boot Web - können diese zusammenarbeiten?
- 13. Bootstrapping einer Backbone-Anwendung
- 14. Getting Point Mausinteraktion und Pinsel zusammenarbeiten
- 15. Heroku zusammenarbeiten, ohne
- 16. Herstellung xampp und Knoten (socket.io) zusammenarbeiten, um
- 17. FragmentTransaction: ersetzen und addToBackStack nicht zusammenarbeiten?
- 18. Getting smoothState.js und Foundation 6 zusammenarbeiten
- 19. Machen Sie list.js und react.js zusammenarbeiten
- 20. Emacs und Schleim hielt für mich zusammenarbeiten
- 21. Warum MVM und Mockito nicht zusammenarbeiten?
- 22. jQuery Versprechen und Backbone
- 23. Backbone JS- und Polymerkompatibilität
- 24. Backbone-Vorlage in einer anderen Vorlage geschachtelt
- 25. Anruf Route innerhalb einer Ansicht in Backbone
- 26. Alle Modelle in einer Backbone-Sammlung abrufen
- 27. Getting Images und bindingSource.Filter zusammenarbeiten in einem DataGridView
- 28. Kann einfach nicht SignalR (asp.net mvc4) und require.js zusammenarbeiten
- 29. Wie z-index und Position fixiert zusammenarbeiten, um in css
- 30. JSF und Jquery AJAX - Wie kann ich sie zusammenarbeiten lassen?
Backbone.Router ist für clientseitige routing, dh: Verwenden Sie die html5-History-API, um die URL zu ändern, wenn Sie die Seite über Ajax aktualisieren. Was versuchst du zu machen? – jordanj77