2012-12-17 17 views
6

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?

+0

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

Odpowiedz

3

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/

+1

można użyć modeli i kolekcji Backbone, widoków i zdarzeń na zapleczu, a nawet router z pewnymi korektami –

+0

To prawda. Właśnie podałem proste informacje dla pytającego, aby najpierw zrozumieć tę koncepcję. –

+1

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

2

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ć.

1

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:

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.)

Powiązane problemy