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 tendencias actual; Es sin duda la tecnología más popular utilizada por los desarrolladores de pila completa.

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

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

¿Qué es Node.js?

Node.js es un motor de ejecución de código abierto, ligero y eficiente de JavaScript creado en el motor de JavaScript V8 de Chrome. Está diseñado sin subprocesos (un solo hilo) 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 dirigida por eventos; por lo tanto, un programador debe entender qué eventos están disponibles y cómo responder a ellos.

Gestión de paquetes bajo Node.js

Node.js utiliza el administrador de paquetes y ecosistema de JavaScript 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 dependencias de paquetes.

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

  • It uses an asynchronous event-driven, non-blocking I/O model of execution, which improves an application’s throughput and supports scalability for real-world web applications.
  • It is single threaded so it can only use 1 CPU at any given time.
  • A node.js web application is a complete web server for example Nginx or Apache.
  • It supports threads via the child_process.fork() API, for spawning child process, and also offers a cluster module.

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

  1. Install Latest Nodejs and NPM Version in Linux Systems

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

Una vez que hayas instalado Node.js , estás listo para comenzar. Primero comienza creando un directorio que almacene tus archivos de 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 [Ingresar] . Tenga en cuenta que las cosas más importantes en package.json son los campos de nombre y versión tal como se explica a continuación.

  • package name – your app name, defaults to the directory name.
  • version – version of your app.
  • description – write a short description for your app.
  • entry point – sets the default packages file to be executed.
  • test command – used to create a test script (defaults to an empty script).
  • git repository – define a Git repository (if you have one).
  • keywords – set keywords, important for other users to identify your package on npm.
  • author – specifies author name, put your name here.
  • license – specify a license for your app/package.

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

$ sudo vi server.js

Copia y pega el siguiente código en él.

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!"

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 se parecen más a las bibliotecas JavaScript , contienen funciones que puede reutilizar en su aplicación. Puede utilizar módulos incorporados, módulos de treinta partes o crear los suyos propios.

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

var http = require('http');

Una vez que se incluye el módulo http, creará un servidor que escucha 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 un 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 (request) y res (response) . 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 en Node.js , la programación conocida como enrutamiento (comparable al enrutamiento en redes de computadoras: proceso de encontrar una ruta para el tráfico en una red).

Aquí, 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 líneas a continuación 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 y vuelva a iniciar su aplicación 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, sobre 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 utilizando los caracteres / y también introdujimos declaraciones de cambio y caso 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 Nodejs y 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. La filosofía única de la programación dirigida por eventos le permite crear servidores y procesos web rápidos, eficientes y escalables.

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