Servidor web NodeJS para probar tus scripts en Ubuntu

nodejs logo

En el siguiente artículo vamos a echar un vistazo a como podemos crear un servidor web NodeJS. Con el podremos probar nuestros propios scripts de manera local. Desarrollar aplicaciones con este marco es bastante sencillo, y podremos crear desde aplicaciones simples de consola hasta un servidor web, que será el tema de este artículo.

Para quién no le diese un vistazo al artículo sobre NodeJS que ya se publicó en este mismo blog hace un tiempo, decir que este es un marco de servidor de código abierto basado en JavaScript. Se utiliza principalmente para la programación asincrónica y es un marco muy ligero que lo hace más rápido que otros. También es compatible con la mayoría de los sistemas operativos populares. Diferentes tipos de aplicaciones, como las aplicaciones web, las aplicaciones de línea de comandos, etc. se pueden desarrollar con este marco utilizando Ubuntu (u otros S.O.).

Creación de un servidor web NodeJs local

Servidor web NodeJs que muestre texto estático

Utilizando este framework vamos a poder implementar fácilmente un servidor web NodeJs local. Este lo podremos utilizar para ejecutar scripts del lado del servidor sin complicaciones.

Para empezar solo tendremos que abrir el editor nano en la terminal (Ctrl+Alt+T) para crear un nuevo archivo JavaScript llamado server.js que se utilizaremos para crear el servidor web NodeJs local.

nano server.js

Una vez abierto, agregaremos el siguiente código en el archivo para crear la conexión del servidor utilizando el puerto 6060. De acuerdo con este código. NodeJS escuchará la conexión del servidor en localhost:6060. Si la conexión se puede establecer con éxito la aplicación NodeJS mostrará como salida un texto básico (en este caso).

Código servidor web nodejs puerto 6060

var http = require('http');
var server = http.createServer(function(req, res) {
res.writeHead(200,{'Content-Type': 'text/plain'});
res.end('NodeJS App');
});
server.listen(6060);
console.log('El servidor está funcionando en http://localhost:6060/');

Una vez copiado el código, tenemos que guardar el archivo. Ejecutaremos el siguiente comando para lanzar el servidor web. Si el código se ejecuta correctamente, se mostrará el mensaje ‘El servidor se está ejecutando en http://localhost:6060‘ en la consola:

nodejs server.js

Vamos a poder abrir cualquier navegador para verificar que el código del servidor web esté funcionando correctamente o no. El script devolverá el texto ‘NodeJS App‘ como contenido en el navegador si el código anterior se ejecuta correctamente. Escribe la siguiente URL en la barra de direcciones para verificar:

Salida servidor web nodejs puerto 6060

http://localhost:6060

En el ejemplo anterior, se va a mostrar un texto estático simple en el navegador. Pero en general, cualquier archivo se muestra cuando se ejecuta la URL base.

Adjuntar archivo html a nuestro servidor web NodeJs

En este servidor se puede adjuntar cualquier archivo html. Este se incluye en la secuencia de comandos de conexión del servidor. A continuación veremos un ejemplo de ello.

Archivo HTML para nuestro servidor

Para empezar, vamos a crear un archivo html muy simple denominado index.html utilizando un editor de textos. En el incluiremos el siguiente código y lo vamos a guardar.

<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html”; charset=”utf-8”/>
<title>Probando NodeJS</title>
</head>
<body>
<h2>Probando el servidor con NodeJS</h2>
<p>Esta es mi primera aplicación con NodeJS creada como ejemplo</p>
</body>
</html>

Configuración del servidor

Una vez guardado el archivo anterior, crearemos otro archivo JavaScript llamado server2.js con el siguiente código para ver el archivo index.html. Estos dos archivos los guardaremos en la misma carpeta, para mayor comodidad.

código servidor web nodejs puerto 5000

var http = require('http');
var fs = require('fs');

var server = http.createServer(function (req, res) {

    if (req.url === "/") {
        fs.readFile("index.html", ‘utf8’, function (error, pgResp) {
            if (error) {
                res.writeHead(404);
                res.write('Página no encontrada');
            } else {
                res.writeHead(200, {'Content-Type': 'text/html' });
                res.write(pgResp);
            }
        res.end();
        });
    } else {
        res.writeHead(200, { 'Content-Type': 'text/html' });
        res.write('<h1>Contenido por defecto</h1>');
        res.end();
    }
});

server.listen(5000);

console.log('El servidor está escuchando en el puerto 5000');

El módulo fs se usa para leer el archivo index.html. El código anterior puede generar tres tipos de salidas. Si la conexión se establece correctamente y existe index.html, se cargará el contenido de este en el navegador. En caso de que la conexión se establezca pero el archivo index.html no exista, se imprimirá el mensaje ‘Página no encontrada‘. Si la conexión se establece y el archivo index.html también existe, pero la URL solicitada no es correcta, el texto ‘Contenido por defecto‘ se mostrará como contenido predeterminado.

Cuando la conexión del servidor web se establece correctamente, aparecerá en la consola el mensaje “El servidor está escuchando en el puerto 5000“.

Probando el servidor web NodeJs

Para ejecutar el servidor escribiremos el siguiente comando:

salida consola servidor web nodeJs puerto 5000

nodejs server2.js

Escribe la siguiente URL para ver el contenido del archivo index.html en el navegador:

salida servidor web nodejs puerto 5000

http://localhost:5000

Ahora, probemos a escribir una URL inválida en el navegador y verifica la salida.

salida web servidor contenido defecto puerto 5000

http://localhost:5000/test

Si modificamos el archivo server2.js y cambiamos el nombre del archivo a index2.html y relanzamos el servidor, veremos el error de “Página no encontrada”.

NodeJS es un buen marco de trabajo con el que se pueden realizar muchas cosas. Cualquier usuario puede seguir los pasos que se muestran en este artículo para iniciarse en el desarrollo de aplicaciones utilizando NodeJS.


Categorías

Ubuntu

Damian Amoedo

Aficionado a la programación. Apasionado del software libre. Dispuesto a aprender de todo para después contarlo.

3 comentarios

  1.   Ricardo Melgoza dijo

    Mario Domínguez ya ves cámbiate a Linux

  2.   Gun dijo

    Buen post! Una pregunta, cómo hago para hacer un servidor web con node pero que sea público, es decir, acceder mediante un dns desde fuera de la red?

    1.    Damian Amoedo dijo

      Prueba con localtunnel. Es sencillo de usar y te ahorra complicaciones. Salu2.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *