2012-01-06 1 views
6

Sto considerando l'utilizzo di Express framework nel mio prossimo progetto node.js. Tuttavia, un ostacolo per me è l'inesistenza della generazione di URL per percorsi come nella maggior parte degli altri framework non basati su Sinatra, esempi: Django, Flask, Rails ecc.Generazione di URL per route in Express

Ho provato a cercare alcuni middleware Connect per servire il mio compito e ho trovato Barista, Escort, Sherpa e simili, ma guardando le loro pagine GitHub, sembrano tutti morti e attivi. Quindi, non voglio fare qualcosa che non viene più mantenuto per ovvi motivi.

La mia preoccupazione principale qui è che il progetto potrebbe diventare molto grande e sarà doloroso aggiornare gli URL in ogni pagina ogni volta che cambiano i requisiti aziendali e/o estetici.

C'è qualcosa che non ho visto nei documenti/test? In caso contrario, come estendere il framework di routing in Express per generare URL e rendere questo wrapper disponibile nelle visualizzazioni e nelle funzioni del controller?

UPDATE: (22/3/2012) ho trovato questa pagina: https://github.com/clyfe/tweet_express/wiki/TODO quale precisato alcuni router che fanno generazione URL e imbattuto il router di scorta che può anche interfacciarsi con espresso.

risposta

7

Si potrebbe provare Locomotive, che è costruito su Express.

Fa molto di più della generazione della rotta. Dai documenti: "Locomotive offre un'ulteriore struttura basata su MVC, per la progettazione di applicazioni di grandi dimensioni, sfruttando al contempo la potenza del middleware Express e Connect".

Locomotive's router generates helpers che sono automaticamente disponibili per i controller e le visualizzazioni.

+0

Locomotiva sembra abbastanza interessante .. grazie! :) – Ishbir

11

Oppure stick con express e utilizzare il pacchetto reversable-router.

Esempio dal readme:

app.get('/admin/user/:id', 'admin.user.edit', function(req, res, next){ 
    //... 
}); 

//.. and a helper in the view files: 
url('admin.user.edit', {id: 2}) 
+1

FYI, il nuovo repository mantenuto è qui: https://github.com/alubbe/named-routes – mindeavor