image

Queremos sitios web realmente veloces. Sitios web que puedan atender a miles de usuarios concurrentes sin presentar fallas de escalabilidad en sus servicios.

Necesitamos un nuevo acercamiento que nos permita a nosotros como developers poder desarrollar este tipo de sitios Web y, efectivamente, NodeJS cumple esta tarea a cabalidad.

Este es el primer episodio del curso Noding With WarNov, en el que aprenderás a manejar Node.js para crear sitios web de última generación que funcionan a grandes velocidades y soportando grandes cargas. Node.js básicamente es una compilación de paquetes. Por un lado incluye el engine V8 JavaScript de Google. Por el otro la capa de abstracción provista por libUV y finalmente una librería core de Node.js escrita principalmente en JavaScript.

Creado en 2009 por Ryan Dahl, hoy es altamente usado en aplicaciones web que requieren alta velocidad y manejo de tráfico optimizado. Es mantenido por Joyent, aunque sigue siendo open source. La principal característica que lo distingue de otros acercamientos similares, es que no necesita de un browser para correr, pues se ejecuta del lado del server. Además implementa un API de I/O creada específicamente para no generar bloqueos, lo que es bastión en la velocidad de respuesta del server.

Adicionalmente Node.js incluye también un ambiente REPL (Read, Evaluate, Print, Loop) que permite el testing interactivo de instrucciones Node.js.

En este video, veremos cómo todos los elementos mostrados anteriormente se integran para producir sitios web, de una manera básica.

En siguientes capítulos iremos avanzando sobre el estudio de esta tecnología.

 

Bien. A manera de documentación, aquí les dejo el código que usé para hacer nuestro primer servidor Web basado en Node.js:

var http = require('http');
var serv = http.createServer(
    function (req, res) {
        res.writeHead(200, { 'Content-Type': 'text/html' });
        res.end('<marquee>Noding with @WarNov</marquee>');

        var d = new Date();
        var hours = d.getHours();
        var minutes = d.getMinutes();
        var seconds = d.getSeconds();

        var time = hours + ":" + minutes + ":" + seconds;
        console.log('Somedoby just node with @WarNov at ' +
            time);
    });
serv.listen(3000);