2012-01-06 12 views
6

Estoy considerando usar Express framework en mi próximo proyecto node.js. Sin embargo, un obstáculo para mí es la inexistencia de generación de URL para rutas como en la mayoría de los marcos sin Sinatra, ejemplos: Django, Flask, Rails, etc.Generación de URL para rutas en Express

Traté de buscar algún middleware de Connect para servir a mi tarea y encontré a Barista, Escort, Sherpa y similares, pero al mirar sus páginas de GitHub, todos parecen muertos e inactivos. Entonces, no quiero ir por algo que ya no se mantiene por razones obvias.

Mi principal preocupación aquí es que el proyecto puede ser realmente grande y será un dolor actualizar las URL en cada página cada vez que cambien los requisitos comerciales y/o estéticos.

¿Hay algo que no pude ver en los documentos/pruebas? Si no es así, ¿cómo extiendo el marco de enrutamiento en Express para hacer la generación de URL y hacer que este contenedor esté disponible tanto en mis vistas como en las funciones del controlador?

ACTUALIZACIÓN: (22/3/2012) encontré esta página: https://github.com/clyfe/tweet_express/wiki/TODO que especificaba algunos routers que la generación de URL y tropezó con el router de escolta que también puede interactuar con expreso.

Respuesta

7

Puede probar Locomotive, que está basado en Express.

Hace mucho más que la generación de ruta. De los documentos: "Locomotive trae una estructura adicional basada en MVC, para la arquitectura de aplicaciones más grandes, mientras aprovecha el poder del middleware Express y Connect".

Locomotive's router generates helpers que están automáticamente disponibles para los controladores y las vistas.

+0

Locomotora parece bastante interesantes .. gracias! :) – Ishbir

11

O pegue con expreso y utilice el paquete reversable-router.

Ejemplo del 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, el nuevo repositorio mantenido está aquí: https://github.com/alubbe/named-routes – mindeavor

Cuestiones relacionadas