Zbudowałem kilka aplikacji szkieletowych i doceniam strukturę i organizację kodu po stronie klienta. Wchodzę do rozwoju Node, używając Expressu, i nie jestem pewien, jak Express i Backbone mogą współpracować przy obsłudze tras.Czy routery sieci szkieletowej i ekspresowej współpracują ze sobą w aplikacji Express?
Odpowiedz
Musisz zrozumieć, że Węzeł i Szkielet są od siebie niezależne.
- Węzeł jest po stronie serwera (np pracy z bazą danych, API obsługującego itp).
- Kręgosłup to ramka JavaScript MVC po stronie klienta, która udostępnia strukturę do organizowania aplikacji JavaScript po stronie klienta. (Aplikacja w przeglądarce)
Można mieć zastosowanie szkieletowej w swojej stronie klienta i można ją podłączyć do dowolnego back-end każdym węźle Rails, PHP itp ...
Dla bardziej informacje sprawdzaj wzorzec MVVM i framework JavaScript po stronie klienta.
http://backbonetutorials.com/why-would-you-use-backbone/
http://addyosmani.com/blog/understanding-mvvm-a-guide-for-javascript-developers/
można użyć modeli i kolekcji Backbone, widoków i zdarzeń na zapleczu, a nawet router z pewnymi korektami –
To prawda. Właśnie podałem proste informacje dla pytającego, aby najpierw zrozumieć tę koncepcję. –
Dzięki Serdar, zapomniałem wyjaśnić, że używam Expressu. Mam silne zrozumienie JavaScriptu po stronie szkieletu i po stronie klienta. Nie jestem pewien, w jaki sposób mogą się współistnieć trasy ekspresowe i routing kręgosłupa. W aplikacji Backbone napisałbym to tak, że jeśli użytkownik przechodzi do/foo, ścieżka foo byłaby w moim routerze i wykonywała funkcję, która generowałaby modele i widoki Backbone. Jednak w aplikacji Express Express chce obsłużyć tę trasę i uruchomić własną funkcję (req, res). Czy te mogą współpracować lub czy muszę wybrać jeden? – AndrewHenderson
Znajomy dał mi odpowiedź:
Backbone używa trasy hash. Na przykład http://yoursite.com/#foo
Express użyciu tradycyjnych http://yoursite.com/foo
Można użyć routerów niezależne od siebie opartego który Twoją ścieżkę - trasa hash dla funkcji po stronie klienta i tradycyjnej trasy o funkcjonalności po stronie serwera .
Oba routery mogą współistnieć.
Twoje pytanie na temat tego, jak współpraca kręgosłupa i ekspresowa może współpracować, nie może zostać dokładnie wyjaśnione, ponieważ istnieje naprawdę niezliczona ilość sposobów, w jakie mogą ze sobą współpracować. Mam nadzieję, że niektóre z poniższych informacji pomogą Ci zrobić to, co chcesz.
Przede wszystkim, może użycie www.example.com/foo (bez #) trasy po stronie klienta (Backbone) - zobacz opcję w Backbone.history.start() dokumentacji pushState
. Istnieje możliwość zintegrowania tras po stronie klienta i po stronie serwera. Jednak nie jest łatwo znaleźć dokładnie, jak to zrobić.
Niektóre z pod tych linków informacji może pomóc:
- 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/
Napisałeś, że masz doświadczenie z Backbone, ale ostatnio przeprowadzasz się do Node, więc zakładam, że jesteś otwarty na inne frameworki niż tylko Express. Możesz rozważyć użycie np. restify (oprócz Express), aby utworzyć usługę RESTful, którą można zintegrować ze szkieletem.
Istnieją również całe struktury, takie jak Derby lub Meteor, które obejmują zarówno stronę kliencką, jak i serwerową, przy użyciu jednej podstawy kodu i można udostępniać znacznie więcej niż tylko routery.
(Także, ja po prostu znaleźć tegoroczny (2013) HTML5DevConf Dyskusja:. Surviving Robots and Old Browsers by Server-side Backbone Nie oglądałem go jeszcze, ale wydaje się bardzo istotne dla Twojego problemu.)
- 1. Czy pule wielowątkowości i autoreasowania współpracują ze sobą w kakao?
- 2. noexcept operator i enable_if_t: czy współpracują ze sobą?
- 3. Jak lenistwo i I/O współpracują ze sobą w Haskell?
- 4. Która wersja jQuery i jQuery Mobile współpracują ze sobą?
- 5. W jaki sposób HTTP/2 i CNAME współpracują ze sobą?
- 6. Jak współdzielone hostingu, nazwy domen i DNS współpracują ze sobą?
- 7. Czy Spring i SWT współpracują ze sobą w aplikacjach Java Desktop?
- 8. Jak konstruktorzy Java i Maven współpracują ze sobą w czasie zaćmienia?
- 9. iOS: jakikolwiek sposób na przepełnienie -webkit-przewijanie i :: - webkit-scrollbar współpracują ze sobą?
- 10. Correct/Concisest sposób routery gniazdo Express,
- 11. W jaki sposób potok (strumień Node.js) i bl (BufferList) współpracują ze sobą?
- 12. Po prostu nie można utworzyć SignalR (asp.net mvc4) i require.js współpracują ze sobą
- 13. Jaka jest różnica między wyzwalaczami i zdarzeniami w sieci szkieletowej?
- 14. Przekazywanie argumentów do zdarzeń w sieci szkieletowej
- 15. Odczytywanie danych z formularza w sieci szkieletowej
- 16. Jak powiązać zdarzenie zmiany w sieci szkieletowej?
- 17. Google iOS DFP i Analytics na iOS nie współpracują ze sobą
- 18. Słuchaj HTTP i HTTPS dla pojedynczej aplikacji ekspresowej.
- 19. Czy 32-bitowe i 64-bitowe mogą współpracować ze sobą?
- 20. Rozszerzanie ekspresowej metody app.get w aplikacji nodejs
- 21. Protokół Open Graph w aplikacji szkieletowej
- 22. Jak otworzyć pusty szablon aplikacji sieci ASP.NET w C# express?
- 23. Wielokrotne interakcje APK ze sobą
- 24. Spring FactoryBean i lunety współpracujące ze sobą
- 25. Czy atrybuty są ze sobą niezgodne?
- 26. Czy odwrócenie kontroli i RAII mogą być ze sobą połączone?
- 27. Czy Mojolicy i Łoś dobrze się ze sobą bawią?
- 28. Czy grupy Regex i * karty wieloznaczne mogą współpracować ze sobą?
- 29. Mapowania są niezgodne ze sobą
- 30. Sprawdź skrzyżowanie android.graphics.path ze sobą
Backbone.Router jest na stronie klienta routing, czyli: używanie interfejsu API historii html5 do zmiany adresu URL podczas aktualizacji strony przez ajax. Co próbujesz zrobić? – jordanj77