Todavía estoy envolviendo mi cabeza alrededor del nodo, pero tengo una pregunta muy simple. Veo muchos ejemplos de nodos donde las personas declaran sus rutas y toda su lógica en un único archivo app.js (o, a veces, dividiéndolos en subarchivos).Node.js, restify y enrutamiento adecuado
Mi pregunta es básicamente: ¿es mejor mantener todas las declaraciones de ruta en la aplicación o arrancar una ruta genérica que se corresponda con la estructura de su archivo? Esto puede parecer una pregunta primitiva, pero mi objetivo es captar lo que es más eficiente dentro del nodo.
Actualmente estoy compilando un controlador API con Restify, pero tengo otra aplicación que usa Express (por lo que esta pregunta probablemente responderá ambas preguntas).
En mi ruta que puede o bien declarar una sola ruta de arranque de este 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();
});
Básicamente, esto significa que acepta todas las llamadas de la API y las metas del controlador API adecuada. Alternativamente, puedo declarar cada ruta individualmente o incluso escribir un bucle que pasa por cada uno de mis controladores y declararlos en init. Entonces:
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 que son una matriz de todos los controladores posibles. Tenga en cuenta que el código anterior no es preciso, tengo una estructura de carpetas HMVC, por lo que el código es un poco más complicado que el anterior. Pero usted consigue el punto.
Me pregunto cuáles son las consecuencias de cualquiera y si realmente importa en absoluto?
Gracias!
Gracias Don, esa es una repetición muy interesante que ustedes tienen allí. Sin embargo, creo que mi pregunta principal aún no está resuelta. En tu aplicación estás definiendo cada una de las rutas explícitamente en routes.js. Quiero generar esto automágicamente así que no tengo que definir manualmente las rutas. – pilotguy
cosas mágicas tienden a asustarme ... :) Fuimos con el archivo routes.js b/c explícito. hace que sea fácil ver qué enrutamientos de ruta se han declarado sin contaminarlo con el código impl. – Don