Sto ancora spostando la testa sul nodo, ma ho una domanda molto semplice. Vedo molti esempi di nodi in cui le persone dichiarano i loro percorsi e tutta la loro logica in un singolo file app.js (oa volte li divide in sottofile).Node.js, restify e routing corretto
La mia domanda è fondamentalmente: è meglio conservare tutte le dichiarazioni di percorso nell'app o eseguire il bootstrap di un percorso generico che si associa alla struttura del file. Questa può sembrare una domanda primitiva, ma il mio obiettivo è quello di comprendere ciò che è più efficiente all'interno del nodo.
Attualmente sto costruendo un gestore di API con Restify ma ho un'altra app che usa Express (quindi questa domanda probabilmente risponderà ad entrambe le domande).
Nel mio percorso ho possibile dichiarare una singola bootstrap percorso in questo modo:
app.all('/api/:package/:controller', function(request, response) {
var controller = require(
'../' + request.params.package + '/api/' + request.params.controller
);
controller.index(request, response);
response.end();
});
accetta questo in sostanza tutte le chiamate dal API e gli obiettivi del controller api corretta. In alternativa, posso dichiarare ogni percorso singolarmente o forse anche scrivere un ciclo che attraversa ciascuno dei miei controller e li dichiara su init. Quindi:
for (var i in packages.controllers) {
app.all('api/' + package + '/' + controllers[i].name, function(request, response) {
var controller = require(
'../' + request.params.package + '/api/' + request.params.controller
);
controller.index(request, response);
}
}
packages.controllers essendo una matrice di tutti i controller possibili. Nota che il codice sopra non è accurato, ho una struttura di cartelle HMVC quindi il codice è un po 'più complicato di quanto sopra. Ma hai capito il punto.
Mi chiedo quali sono le conseguenze di entrambi e se davvero conta davvero?
Grazie!
Grazie Don, questa è una caldaia interessante che voi ragazzi avete lì. Comunque credo che la mia domanda principale non sia ancora risolta. Nella tua app definisci esplicitamente ciascuno dei percorsi in routes.js. Voglio generare questo automaticamente, quindi non devo definire manualmente i percorsi. – pilotguy
roba magica tende a spaventarmi .. :) Siamo andati con i percorsi.js b/c era esplicito. rende facile vedere quali corrispondenze sono state dichiarate senza inquinarlo con il codice impl. – Don