Cómo escribir su primera aplicación Node.js en Linux


Las tendencias de desarrollo web han cambiado drásticamente en los últimos años y, como desarrollador web, para estar en la cima de su juego, es importante mantenerse actualizado con las últimas tecnologías.

JavaScript es el lenguaje de programación de tendencia actual que existe; es sin duda la tecnología más popular utilizada por los desarrolladores de pila completa.

Los frameworks web JavaScript se han convertido en una solución mágica para un desarrollo web más rápido con absoluta eficiencia, seguridad y costos minimizados. Estoy bastante seguro de que ha oído hablar de Node JavaScript (comúnmente conocido como Node.js o simplemente Node), hay un rumor al respecto en Internet.

En este artículo, le mostraré cómo comenzar a desarrollar aplicaciones en JavaScript usando Node.js en Linux. Pero primero, veamos una breve introducción a Node.js.

¿Qué es Node.js?

Node.js es un tiempo de ejecución de JavaScript de código abierto, ligero y eficiente construido sobre el motor de JavaScript V8 de Chrome. Está diseñado sin subprocesos (de un solo subproceso) y tiene una implementación similar a Twisted, un motor de red creado con Python o Event Machine, una biblioteca de procesamiento de eventos para programas Ruby.

El corazón de Node.js se basa en la programación impulsada por eventos; Por lo tanto, un programador debe comprender qué eventos están disponibles y cómo responder a ellos.

Gestión de paquetes en Node.js

Node.js utiliza el administrador de paquetes de JavaScript y el ecosistema llamado "npm", que contiene una inmensa colección de bibliotecas de código abierto gratuitas. Es compatible con el desarrollo de software modular. Puede usarlo para instalar paquetes de nodos, compartir, distribuir su código y administrar las dependencias de los paquetes.

Node.js es poderoso y, por lo tanto, importante debido a las siguientes razones:

  • Utiliza un modelo de ejecución de E/S sin bloqueo, controlado por eventos, asíncrono, que mejora el rendimiento de una aplicación y admite la escalabilidad para aplicaciones web del mundo real.
  • Es de un solo subproceso, por lo que solo puede usar 1 CPU en un momento dado.
  • Una aplicación web node.js es un servidor web completo, por ejemplo, Nginx o Apache.
  • Admite subprocesos a través de la API child_process.fork(), para generar procesos secundarios, y también ofrece un módulo de clúster.

Con esta breve introducción, debe estar ansioso por escribir su primer programa JavaScript. Sin embargo, lo primero es lo primero, debe instalar los paquetes Node.js y NPM en su sistema Linux usando la siguiente guía.

  1. Instale la última versión de Nodejs y NPM en sistemas Linux

Cómo crear su primera aplicación Node.js en Linux

Una vez que haya instalado Node.js, estará listo para comenzar. Primero comience creando un directorio que almacenará los archivos de su aplicación.

$ sudo mkdir -p /var/www/myapp

Luego, muévase a ese directorio y cree un archivo package.json para su aplicación. Este archivo ayuda como una pequeña documentación para su proyecto: nombre del proyecto, autor, lista de paquetes de los que depende, etc.

$ cd /var/www/myapp
$ npm init

Esto le hará una serie de preguntas, simplemente responda como se describe a continuación y presione [Enter]. Tenga en cuenta que lo más importante en package.json son los campos de nombre y versión, como se explica a continuación.

  • nombre del paquete: el nombre de su aplicación, el nombre predeterminado es el nombre del directorio.
  • versión: versión de su aplicación.
  • descripción: escribe una breve descripción de tu aplicación.
  • punto de entrada: establece el archivo de paquetes predeterminado que se ejecutará.
  • comando de prueba: se utiliza para crear una secuencia de comandos de prueba (por defecto es una secuencia de comandos vacía).
  • repositorio de Git: defina un repositorio de Git (si tiene uno).
  • palabras clave: establezca palabras clave, importantes para que otros usuarios identifiquen su paquete en npm.
  • autor: especifica el nombre del autor; escriba su nombre aquí.
  • licencia: especifique una licencia para su aplicación/paquete.

A continuación, cree un archivo server.js .

$ sudo vi server.js

Copie y pegue el código a continuación.

var http = require('http');
http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end('Hello World!');
}).listen(8080);
console.log('Server started on localhost:8080; press Ctrl-C to terminate...!');

A continuación, inicie su aplicación usando el siguiente comando.

$ node server.js
OR
$ npm start

A continuación, abra un navegador web y acceda a su aplicación web, que no hace más que imprimir la cadena "¡Hola mundo!", Utilizando la dirección:

http://localhost:3333

En nuestro código anterior, el evento principal que se está procesando es una solicitud HTTP a través del módulo HTTP.

En Node.js, los módulos son más como bibliotecas de JavaScript, contienen funciones que puedes reutilizar en tu aplicación. Puede utilizar módulos incorporados, módulos de treinta partes o crear los suyos propios.

Para llamar a módulos en su aplicación, use la función require como se muestra.

var http = require('http');

Una vez que se incluye el módulo http, creará un servidor que escuchará en un puerto en particular (3333 en este ejemplo). El método http.creatServer crea el servidor http real que acepta una función (que se invoca cuando un cliente intenta acceder a la aplicación) como argumento.

http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end('Hello World!');
}).listen(8080);

La función en http.createServer tiene dos argumentos: req (solicitud) y res (respuesta). El argumento req es la solicitud de un usuario o cliente y el argumento res envía una respuesta al cliente.

res.writeHead(200, { 'Content-Type': 'text/plain' });		#This is a response HTTP header
res.end('Hello World!');

La parte final del código envía la salida a la consola, una vez que se inicia el servidor.

console.log('Server started on localhost:8080; press Ctrl-C to terminate...!');

En esta sección, explicaré uno de los conceptos más importantes de la programación de Node.js conocido como enrutamiento (comparable al enrutamiento en redes de computadoras: proceso de encontrar una ruta para el tráfico en una red).

Aquí, el enrutamiento es una técnica para manejar la solicitud de un cliente; sirviendo el contenido que el cliente ha solicitado, como se especifica en la URL. Una URL se compone de una ruta y una cadena de consulta.

Para ver la cadena de consulta de solicitud de un cliente, podemos agregar las siguientes líneas en nuestra respuesta.

res.write(req.url);
res.end()

A continuación se muestra el nuevo código.

var http = require('http');
http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.write(req.url);
      res.end();		
      }).listen(8080);
console.log('Server started on localhost:8080; press Ctrl-C to terminate...!');

Guarde el archivo e inicie su aplicación nuevamente usando el siguiente comando.

$ node server.js
OR
$ npm start

Desde un navegador web, escriba diferentes URL que se mostrarán como se muestra a continuación.

http://localhost:3333
http://localhost:3333/about
http://localhost:3333/tecmint/authors

Ahora, crearemos un sitio web realmente pequeño para Tecmint con una página de inicio, acerca de y páginas de autores. Mostraremos alguna información en estas páginas.

Abra el archivo server.js para editarlo y agregue el siguiente código en él.

//include http module 
var http = require('http');

http.createServer(function(req,res){
	//store URL in variable q_string

	var q_string = req.url;
	switch(q_string) {
		case '/':
                        	res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('Welcome To Tecmint.com!')
                        	res.end();
                        	break;
                	case '/about':
                		res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('About Us');
                        	res.write('\n\n');
                        	res.write('Tecmint.com - Best Linux HowTos on the Web.');
                        	res.write('\n');
                        	res.end('Find out more: https://www.tecmint.com/who-we-are/');
                        	break;
                	case '/tecmint/authors':
                        	res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('Tecmint Authors');
                        	res.write('\n\n');
                        	res.end('Find all our authors here: https://www.tecmint.com/who-we-are/');
                        	break;
                	default:
                       		res.writeHead(404, { 'Content-Type': 'text/plain' });
                       		res.end('Not Found');
                        	break;
	}
}).listen(3333);
console.log('Server started on localhost:3333; press Ctrl-C to terminate....');

En el código anterior, hemos visto cómo escribir comentarios en Node.js usando los caracteres / y también introdujimos declaraciones switch y case para enrutar las solicitudes de los clientes.

Guarde el archivo, inicie el servidor e intente acceder a las distintas páginas.

¡Eso es todo por ahora! Puede encontrar más información en los sitios web de NPM.

Node.js está alcanzando nuevos máximos hoy, ha hecho que el desarrollo de pila completa sea mucho más fácil que antes. Su filosofía única de programación impulsada por eventos le permite crear servidores y procesos web ultrarrápidos, eficientes y escalables.

A continuación, explicaremos los frameworks Node.js, que amplían sus capacidades nativas para desarrollar aplicaciones web/móviles de forma rápida y fiable. Comparta sus pensamientos sobre este artículo a través de la sección de comentarios a continuación.