jueves, 27 de agosto de 2015

Indispensables (o no tanto) para empezar con Node.js

En una entrada anterior hice una reseña sobre mi primer acercamiento a Node.js. Esta entrada tiene por objeto agrupar en unas pocas líneas algunas anotaciones y recomendaciones sobre las herramientas necesarias para empezar a explorar este mundo. Aunque he procurado hacer algunas pesquisas adicionales, mi punto de partida es, como no podía ser de otro modo, el curso al que hice mención con anterioridad. 

Bien, ¿Por dónde empiezo? Estoy ávido de conocimiento. Quiero hacer un "Hola mundo" ya... 

Lo primero y más importante (y tan absolutamente obvio que podrías mandarme a tomar viento...) es instalarse Node.js en el equipo. Cuando empecé con el curso, los tutores (y varios sitios web que consulté) recomendaban trabajar en un entorno Linux porque "Node en Windows podía dar algunos problemas". Yo habitualmente trabajo con Windows 7, así que al principio me rondó la idea de instalar un VirtualBox o similar, pero finalmente decidí arriesgarme con la instalación para Windows y no tuve mayores problemas. Podéis descargar el archivo .msi en este enlace. Una vez instalado tendremos a nuestra disposición todo un abanico de módulos que nos facilitarán la vida en el desarrollo de aplicaciones. 


Podemos comprobar que la instalación se hizo correctamente abriendo una ventana de consola y tecleando "node --version" que nos informará de la versión de Node.js que hemos instalado (también tendremos una nueva carpeta accesible en el menú de inicio). El instalador se encarga de configurar las variables del sistema para que el path de Node esté accesible desde cualquier directorio. 

Vale, ya tengo Node.js en mi equipo, ¿puedo hacer ya un estupendo "Hola mundo"?. 

Sí que puedes, pero deja que te cuente un poco más... Node.js permite ejecutar JavaScript de dos formas diferentes, a saber, en modo comando y en modo interactivo. En el primer caso le tenemos que pasar un fichero con código JavaScript al interprete de comandos, tal que así: "node mi_fichero.js". En el segundo caso, tecleando "node" sin parámetros, podemos entrar en lo que se llama modo REPL (Read, Eval, Print y Loop), que es básicamente una ejecución de instrucciones paso a paso en la consola. 

Ok. ¿Y cómo escribo mi archivo hola_mundo.js?¿No me digas que me las tengo que arreglar con un editor de texto plano?... ¡Vamos, no fastidies! 

Pues hasta donde yo sé, básicamente sí. Al ser JavaScript un lenguaje interpretado te vale cualquier editor. Afortunadamente hay algunos que proporcionan una experiencia más gratificante echando un cable con la sintaxis. Entre las numerosas opciones, tenemos ATOM o Sublime. Y ya, si nos queremos poner profesionales, WebStorm es un completo IDE para programar en JavaScript que está muy bien. Tiene el hándicap de ser de pago, pero es gratis para profesores y estudiantes y además está disponible para probarlo durante 30 días de forma libre y sin limitaciones. 

No sé, no sé... Aquí hay mucho trabajo por hacer para montar cualquier chapuza de aplicación... 

Ok, efectivamente hay mucho de "do it yourself" en la programación JavaScript pero, como te comentaba al principio, Node.js ofrece una buena cantidad de módulos que facilitan bastante la tarea. Muchos de estos módulos vienen de serie en la instalación que ya hemos hecho. Otros se encuentran agrupados en paquetes que es necesario instalar desde la consola con el gestor de paquetes npm. No me voy a explayar con el tema de los paquetes -sería una tarea ardua-, me limitaré a comentar algunos de los que es recomendable instalar para empezar a hacer algunas cosas interesantes. 

Todos los paquetes se pueden instalar desde la consola con la fórmula común "npm install nombre_paquete[@versión]". El gestor de paquetes se conectará a un servidor central, descargará el paquete y los instalará en nuestro equipo. 

El paquete express instala un framework que proporciona un buen número de métodos y middlewares para crear servicios web accesibles por HTTP. 

Relacionado con el anterior, existe otro paquete llamado express-generator que permite crear todo el esqueleto de un proyecto de aplicación web. 

El paquete express-partials permite tener soporte para layouts, así, en caso de tener varias páginas con estructura similar, podemos hacer uso de un marco único, común a todas las vistas de nuestra aplicación, que nos evite replicar demasiado código HTML. 

Dos paquetes muy interesantes, si tenemos intención de hacer una aplicación medio decente, son sequelize y sqlite3. Sequelize es un ORM (Object-Relational Mapping) que permite a express trabajar con bases de datos relacionales (tipo MySQL, Postgres...). El paquete sqlite3 por su parte nos permite tener en local una base de datos, sencilla y suficientemente potente, que es muy usada en entornos de desarrollo. Sequelize se entiende con sqlite3 mediante SQL

Estos son, a grosso modo, los paquetes adicionales que tuve que instalar para poder desarrollar los ejercicios del curso del que os hablaba, hay muchos más, pero para ir empezando ya es suficiente...

Vale, ya he instalado todos los paquetes ¿Qué pasa con mi "Hola mundo"? 

Espera leches, ¡Qué impaciente eres!... Obviamente, si queremos probar nuestras aplicaciones de servidor más allá del territorio conocido de nuestro localhost necesitamos un lugar en la nube que nos permita esparcir nuestras chapuzas por el mundo. A mi me recomendaron Heroku. Heroku es un servicio en la nube de tipo PaaS (Platform as a Service) que nos permite publicar nuestras aplicaciones en Node.js, PHP, Python y otros tantos. Es un servicio gratuito (con recursos limitados) con el que podemos ejecutar nuestras aplicaciones en la nube. Cada aplicación se ejecuta en una máquina virtual (que llaman Dynos) y puede tener asociado un repositorio Git. Las aplicaciones se gestionan remotamente a través de dos mecanismos equivalentes: mediante comandos, instalando un paquete de herramientas denominado Heroku Toolbelt; o a través de una aplicación web denominada Dashboard

Y con esto creo que tendríamos lo básico (y algo más) para empezar a crear nuestra magia en Node.js, así que doy por terminada la entrada. 
... 

¡Eh, espera!¿Qué pasa con mi "Hola mundo" tío?... No puedes dejarme así. 

¡Venga ya! Eres sólo la representación en fuente cursiva de mi alter ego trastornado... Búscate la vida.

No hay comentarios:

Publicar un comentario