2012-12-17 12 views
6

Ho creato diverse app Backbone e apprezzo la struttura e l'organizzazione del codice lato client. Sto passando allo sviluppo di Node, usando Express, e sono incerto su come Express e Backbone possano lavorare insieme nella gestione dei percorsi.I router Backbone e Express possono funzionare insieme in un'applicazione Express?

+0

Backbone.Router è per lato client instradamento, vale a dire: utilizzando l'API di cronologia html5 per modificare l'URL quando si aggiorna la pagina tramite ajax. Cosa stai cercando di fare? – jordanj77

risposta

3

È necessario comprendere che il nodo e il backbone sono indipendenti l'uno dall'altro.

  • Nodo è per i server-side (per esempio lavoro con un database, api servire ecc).
  • Backbone è un framework Javascript MVC lato client che offre una struttura per l'organizzazione dell'applicazione Javascript sul lato client. (L'applicazione nel browser)

si può avere un'applicazione Backbone nel vostro lato client e può collegare a qualsiasi back-end sia Node, Rails, PHP ecc ...

Per ulteriori informazioni controllare pattern MVVM e framework Javascript sul lato client.

http://backbonetutorials.com/why-would-you-use-backbone/

http://addyosmani.com/blog/understanding-mvvm-a-guide-for-javascript-developers/

+1

potresti usare i modelli Backbone e le collezioni, e le visualizzazioni e gli eventi sul lato back-end, e probabilmente anche il router con alcune regolazioni –

+0

Questo è corretto. Ho appena dato semplici informazioni al richiedente per capire prima il concetto. –

+1

Grazie a Serdar, ho dimenticato di spiegare che sto usando Express. Ho una buona conoscenza di Backbone e JavaScript sul lato client. Quello di cui non sono sicuro è come possono coesistere il routing Express e il routing Backbone. In un'app Backbone, la scriverò in modo tale che se un visitatore naviga in/foo il percorso foo si trova nel mio router ed esegue una funzione che genererebbe i modelli e le viste di Backbone. Tuttavia, in un'app Express, Express vuole gestire questo routing ed eseguire la propria funzione (req, res). Possono questi lavorare insieme o devo sceglierne uno? – AndrewHenderson

2

Un amico mi ha dato la risposta:

Backbone utilizza percorsi hash. Per esempio http://yoursite.com/#foo

Express utilizzare il tradizionale http://yoursite.com/foo

È possibile utilizzare i router indipendenti l'uno dall'altro una basata cui si affrontano percorso - un percorso di hash per le funzioni lato client e il percorso tradizionale per la funzionalità lato server .

Entrambi i router possono coesistere.

1

La tua domanda su come Backbone e Express possono lavorare insieme non può essere risolta in modo preciso, perché ci sono davvero innumerevoli modi in cui possono lavorare insieme. Speriamo che alcune delle informazioni qui sotto possano aiutarti a fare ciò che vuoi fare.

Prima di tutto, si può uso www.example.com/foo (senza #) percorsi sul lato client (Backbone) - vedere l'opzione pushState in Backbone.history.start() documentazione. È possibile integrare i percorsi sul lato client e sul lato server. Tuttavia, non è facile trovare esattamente come fare.

Alcune delle informazioni in virtù di tali link possono aiutare:

Hai scritto di avere esperienza con Backbone ma ti stai spostando al nodo di recente, quindi presumo che tu sia aperto ad altri framework oltre a Express. Potresti considerare di usare eg. restify (oltre a Express) per creare un servizio RESTful che è possibile integrare con Backbone.

Esistono anche intere strutture come Derby o Meteor che coprono sia lato client che lato server utilizzando una base di codice ed è possibile condividere molto più dei soli router.

(Inoltre, ho appena trovato questo anno (2013) HTML5DevConf parlare:. Surviving Robots and Old Browsers by Server-side Backbone Non ho ancora guardato ma sembra molto rilevante per il problema.)