Node.js
Node.js | ||
---|---|---|
Información general | ||
Tipo de programa | Dirigida por eventos | |
Autor | Ryan Lienhart Dahl | |
Desarrollador |
Node.js Developers Joyent | |
Lanzamiento inicial | 27 de mayo de 2009[1] | |
Licencia | Licencia MIT | |
Estado actual | Activo | |
Información técnica | ||
Programado en | C++, JavaScript | |
Versiones | ||
Última versión estable | 0.10.33 ( 20 de octubre de 2014) | |
Última versión en pruebas | 0.11.13 ( 01 de mayo de 2014) | |
Enlaces | ||
Node.js es un entorno de programación en la capa del servidor basado en el lenguaje de programación Javascript, asíncrono, con I/O de datos en una arquitectura orientada a eventos y basado en el motor Javascript V8 de Google. Fue creado con el enfoque de ser útil en la creación de programas de red altamente escalables, como por ejemplo, servidores web.[2]. Fue creado por Ryan Dahl en 2009 y su evolución está apadrinada por la empresa Joyent, que además tiene contratado a Dahl en plantilla.[3] [4]
Node.js es similar en su propósito a Twisted o Tornado de Python, Perl Object Environment de Perl, React de PHP, libevent o libev de C, EventMachine de Ruby, vibe.d de D y de Java existe Apache MINA, Netty, Akka, Vert.x, Grizzly o Xsocket. Al contrario que la mayoría del código JavaScript, no se ejecuta en un navegador, sino en el servidor. Node.js implementa algunas especificaciones de CommonJS.[5] Node.js incluye un entorno REPL para depuración interactiva.
Ejemplos
Versión de un hola mundo de un Servidor HTTP escrito en Node.js:
var http = require('http');
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello World\n');
}).listen(8000);
console.log('Server running at http://127.0.0.1:8000/');
Otro ejemplo con un servidor TCP que escucha en el puerto 7000 y responde con cualquier cosa que se le envíe:
var net = require('net');
net.createServer(function (stream) {
stream.write('hello\r\n');
stream.on('end', function () {
stream.end('goodbye\r\n');
});
stream.pipe(stream);
}).listen(7000);
Módulos
Node.js incorpora varios "módulos básicos" compilados en el propio binario, como por ejemplo el módulo de red, que proporciona una capa para programación de red asíncrona y otros módulos fundamentales, como por ejemplo Path, FileSystem, Buffer, Timers y el de propósito más general Stream. Es posible utilizar módulos desarrollados por terceros, ya sea como archivos ".node" precompilados, o como archivos en javascript plano. Los módulos Javascript se implementan siguiendo la especificación CommonJS para módulos,[6] utilizando una variable de exportación para dar a estos scripts acceso a funciones y variables implementadas por los módulos.[7]
Los módulos de terceros pueden extender node.js o añadir un nivel de abstracción, implementando varias utilidades middleware para utilizar en aplicaciones web, como por ejemplo los frameworks connect y express. Pese a que los módulos pueden instalarse como archivos simples, normalmente se instalan utilizando el Node Package Manager (npm) que nos facilitará la compilación, instalación y actualización de módulos así como la gestión de las dependencias. Además, los módulos que no se instalen el directorio por defecto de módulos de Node necesitarán la utilización de una ruta relativa para poder encontrarlos. El wiki Node.js proporciona una lista de varios de los módulos de terceros disponibles.
Comunidad
Existe una comunidad muy activa de desarrolladores de Node.js que se comunican a través de grupos de discusión, nodejs y nodejs-dev y el canal IRC #node.js en freenode. La comunidad se reúne en NodeConf, una convención de desarrolladores centrada en Node.js.[8]
Véase también
- JavaScript
- V8 (motor JavaScript)
- NPM, el gestor de paquetes para Node.js.
Referencias
- ↑ https://github.com/joyent/node/tags?after=v0.0.4
- ↑ http://www.readwriteweb.com/hack/2011/01/wait-whats-nodejs-good-for-aga.php
- ↑ http://mashable.com/2011/03/10/node-js/
- ↑ Alex Handy (24 de junio de 2011). «Node.js pushes JavaScript to the server-side». SDTimes. Consultado el 24 de junio de 2011.
- ↑ http://wiki.commonjs.org/wiki/Implementations/node.js
- ↑ «CommonJS Implementations». Consultado el 15 de mayo de 2011.
- ↑ Ryswyck, Jan. «Taking Baby Steps with Node.js – CommonJS and Creating Custom Modules». Consultado el 15 de mayo de 2011.
- ↑ http://www.readwriteweb.com/hack/2011/04/nodeconf-schedule-announced.php
Enlaces externos
- Sitio oficial (inglés)
- Repositorio de código fuente (inglés)
- Lista de correo Nodejs - Grupo de discusión sobre Node.js (inglés)
- Lista de correo Nodejs-dev - Grupo de discusión sobre fallos y cambios en Node.js (inglés)
- NPMJS. El gestor de paquetes de Node.js (inglés)
- How To Node, tutorial de Node.js (inglés)
- Como desarrollar tu propia extensión nativa para Node.js (inglés)
- NodeNica, comunidad nicaragüense de Node.js (español)