2012-06-18 15 views
75

Nuovo in Node.js ed Express, sto cercando di capire che i due concetti sembrano sovrapposti, route vs controller.Node.js + Express: route vs controller

Ho visto esempi che semplici app.js + percorsi/*, questo sembra essere sufficiente per instradare varie richieste necessarie.

Tuttavia, vedo anche persone che parlano dell'uso dei controller e alcuni che implicano un modello MVC più formale (???).

Sarebbe bello se qualcuno mi può aiutare a chiarire questo mistero, e se hai un buon esempio per l'impostazione del controller in Node.js + framework Express che sarà grande!

Grazie,

risposta

98

Una delle cose più interessanti di Express (e Nodo in generale) è che non spinge un sacco di opinioni su di voi; uno dei lati negativi è che non spinge alcuna opinione su di te. Quindi, sei libero (e richiesto!) Di impostare tali opinioni (modelli) da solo.

Nel caso di Express, è possibile utilizzare sicuramente un pattern MVC e un gestore di route può sicuramente svolgere il ruolo di controller se lo si desidera - ma è necessario configurarlo in questo modo. Un ottimo esempio può essere trovato nel Express examples folder, chiamato mvc. Se si guarda lib/boot.js, è possibile vedere come hanno impostato l'esempio per richiedere ciascun file nella directory controllers e generare le rotte Express in tempo reale in base al nome dei metodi creati sui controller.

+0

Il primo paragrafo di [questa risposta abbastanza intelligente] (http://stackoverflow.com/a/12957755/444255) sta anche dando una buona spiegazione/distinzione tra i due termini. –