Para comenzar con la mala noticia: como Node.js es una técnica bastante joven, creo que encontrará que el proceso de creación de un sitio web completo y su mantenimiento/funcionamiento será muy diferente de lo que está utilizando actualmente a.
Josh3736 suma: Una vez que descubra cómo funcionan Node.js y sus diversos paquetes (Connect, Express), descubrí que puede desarrollar sitios nuevos muy rápidamente.
Los bordes ásperos que existen actualmente en Node.js, combinados con el ritmo acelerado de su desarrollo y todos los módulos involucrados pueden complicar las cosas y hacer que las cosas sean menos simples, rápidas y directas de lo que desearía.
Tener que fuera del camino, aquí es la buena noticia:
El Node Package Manager, NPM tiene un montón de buenas herramientas y marcos para ampliar la funcionalidad de los huesos desnudos de Node.js, lo que es adecuado para crear un servidor web.
Lo más notable sería el Express Framework que contiene casi todo lo que necesita para ejecutar un servidor web (incluidas las cookies, las sesiones y el enrutamiento de rutas). Además, Express admite parciales, que se encargan de su encabezado y pie de página.
Express está construido en la parte superior de Sencha's Connect. Las cookies y las sesiones en realidad funcionan con Connect. Express es lo que simplifica su enrutamiento y maneja vistas/parciales. Por lo tanto, si no necesita todos los recursos que vienen con Express, puede usar Connect.
Si desea utilizar plantillas para estos parciales, el Jade Template Engine puede acelerar las cosas para usted. Aunque Josh3736 señala que Jade es lento y de espacio significativo. Se puede encontrar una descripción más completa here, que incluye su favorito, doT. (Yo personalmente uso Node.js solo para aplicaciones basadas en socket.io
, por lo que es una mejor fuente que yo en lo que respecta a la creación de plantillas).
Usted puede conectarse a MySQL desde Node.js utilizando el módulo db-mysql, pero si no es necesario que debido a que usted está accediendo a los datos conectados a un sistema ya existente, te aconsejo utilizar una más. .. enfoque 'moderno', que es usar una base de datos NoSQL como la mayoría de los proyectos de Node.js parecen hacer. MongoDB a través de Mongoose es el camino más popular por recorrer.
O si solo está almacenando los objetos que le interesan, simplemente haga clic en Redis (que probablemente necesite en algún momento).
Una vez que su sitio web esté completo, tendrá que implementarlo y asegurarse de que siga funcionando. Hay muchas maneras de hacerlo, como utilizar la compatibilidad de clúster incorporada o utilizar el módulo forever
npm, que es más fácil de usar. See this SO question of mine for more information.
Conclusión:
Lo que estoy tratando de llegar es a esto:
preguntando cuál es la mejor práctica para la construcción de un sitio web en Node.js es, es casi lo mismo que preguntar qué la mejor manera de crear un sitio web en PHP es: 100 desarrolladores le darán 100 respuestas diferentes.
NPM cuenta con una variedad de marcos excelentes que simplifican en gran medida muchas de las tareas involucradas, pero todo se basa en la preferencia de cuál es el camino a seguir realmente.
Como he dicho, Node.js sigue siendo una técnica bastante joven, por lo que ninguno de los marcos o herramientas adicionales han surgido como 'estándar de facto'; para la mayoría de las cosas que intentas hacer hay probablemente varias alternativas, y esperas que tu código se rompa cuando usas la mayoría de ellas durante las actualizaciones, porque el desarrollo de Node.js mismo y de la mayoría de los módulos es de ritmo rápido. Tendrás que mantenerte al día.
Poniendo todo junto:
Como he dicho, mi principal uso para la producción de Node.js es ser capaz de utilizar socket.io
, así que no tengo ningún ejemplo buena producción actuales (Y como estoy a punto de irme en unas merecidas vacaciones, tampoco tengo tiempo para juntar una).Hay algunos buenos ejemplos sin embargo:
Una vez más, el camino a seguir (y, posteriormente, el ejemplo a seguir) depende en gran medida de sus objetivos finales y sobre la técnicas elegidas, pero afortunadamente hay muchos recursos disponibles para todas las opciones disponibles. La mayoría de los módulos utilizan repositorios GitHub bien documentados e incluyen ejemplos en combinación con los módulos más populares (consulte el directorio /examples/
que parece estar presente en la mayoría de los repositorios).
¡Buena suerte! (Y gracias a Josh3736 para rectificar mis errores.)
También me gustaría señalar que es muy importante probar el código usando, por ejemplo, mocha -> https://github.com/visionmedia/mocha. Cree un código modular (módulos) pequeño y bien probado. – Alfred
También puede echar un vistazo a Erlang que admite concurrencia de forma predeterminada, es más rápido que node.js y más fácil que decir C o Java. –