Nodo.JS (Node.JS)

Node.js es un tiempo de ejecución de JavaScript multiplataforma de código abierto que se ejecuta en servidores. Desde su lanzamiento en 2009, esta plataforma se ha vuelto extremadamente popular y juega un papel muy importante en el campo del desarrollo web en estos días.
Para ver el artículo completo en Node.JS ...

Mostrar filtro
Filtros de alojamiento
A2 Themes & Host Me Filter

Sistema operativo

Espacio del disco

Memoria RAM

Tipo de disco

Núcleos de CPU

Ordenar

Piloto de confianza Dream Host
Puntuación - 9.7
Dream Host Logo
Dream Host

Anfitrión de ensueño

DreamObjects 40 GB
$0.95 /Mensual

Reseñas 3778

29 Cupones

Ubicaciones del servidor


Dream Host Servers in AshburnEstados Unidos
Comparar
Piloto de confianza ICDSoft
Puntuación - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - Europe
$8 /Mensual

Reseñas 233


Ubicaciones del servidor


ICDSoft Servers in SofiaBulgaria ICDSoft Servers in BostonEstados Unidos ICDSoft Servers in Hong KongHong Kong
Comparar
Piloto de confianza ICDSoft
Puntuación - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - USA
$8 /Mensual

Reseñas 233


Ubicaciones del servidor


ICDSoft Servers in SofiaBulgaria ICDSoft Servers in BostonEstados Unidos ICDSoft Servers in Hong KongHong Kong
Comparar
Puntuación - 9
A2hosting Logo
A2hosting

A2hosting

Lite
$3.92 /Mensual

50 Cupones

Ubicaciones del servidor


A2hosting Servers in AmsterdamPaíses Bajos A2hosting Servers in MichiganEstados Unidos A2hosting Servers in SingaporeSingapur
Comparar
Piloto de confianza Keliweb
Puntuación - 9.8
Keliweb Logo
Keliweb

Keliweb

Prime
$5.51 /Mensual

Reseñas 453


Ubicaciones del servidor


Keliweb Servers in MilanoItalia
Comparar
Piloto de confianza JustHostMe
Puntuación - 9.4
JustHostMe Logo
JustHostMe

JustHostMe

Starter
$3.11 /Mensual

Reseñas 72


Ubicaciones del servidor


JustHostMe Servers in United KingdomReino Unido
Comparar
Piloto de confianza Dream VPS
Puntuación - 8.6
Dream VPS Logo
Dream VPS

Sueño VPS

STARTER
$3.75 /Mensual

Reseñas 7


Ubicaciones del servidor


Dream VPS Servers in Hong KongHong Kong Dream VPS Servers in Santa Clara Dream VPS Servers in New YorkEstados Unidos Dream VPS Servers in LondonReino Unido Dream VPS Servers in AmsterdamPaíses Bajos Dream VPS Servers in FrankfurtAlemania Dream VPS Servers in IsraelIsrael
Comparar
Piloto de confianza Reseller Cube
Puntuación - 8
Reseller Cube Logo
Reseller Cube

Cubo de revendedor

Basic USA
$5 /Mensual

Reseñas 4


Ubicaciones del servidor


Reseller Cube Servers in RaleighEstados Unidos
Comparar
Piloto de confianza Univa Host
Puntuación - 8
Univa Host Logo
Univa Host

Anfitrión de Univa

E-ECONOMY
$2.99 /Mensual

Reseñas 3


Ubicaciones del servidor


Univa Host Servers in GermanyAlemania Univa Host Servers in United StatesEstados Unidos
Comparar
Piloto de confianza OperaVPS
Puntuación - 7.8
OperaVPS Logo
OperaVPS

OperaVPS

Linux 512MB
$7.99 /Mensual

Reseñas 3


Ubicaciones del servidor


OperaVPS Servers in United KingdomReino Unido OperaVPS Servers in AustriaAustria OperaVPS Servers in CanadaCanadá OperaVPS Servers in DenmarkDinamarca OperaVPS Servers in FranceFrancia OperaVPS Servers in GermanyAlemania OperaVPS Servers in ItalyItalia OperaVPS Servers in NetherlandsPaíses Bajos OperaVPS Servers in RomaniaRumania OperaVPS Servers in United StatesEstados Unidos
Comparar
Piloto de confianza L3Web Hosting
Puntuación - 7.6
L3Web Hosting Logo
L3Web Hosting

Alojamiento L3Web

START UP
$1.99 /Mensual

Reseñas 2


Ubicaciones del servidor


L3Web Hosting Servers in IndiaIndia L3Web Hosting Servers in MunichAlemania L3Web Hosting Servers in MiamiEstados Unidos L3Web Hosting Servers in SingaporeSingapur L3Web Hosting Servers in United KingdomReino Unido
Comparar
Piloto de confianza Idea Stack
Puntuación - 7.4
Idea Stack Logo
Idea Stack

Pila de ideas

LEVEL 1
$2 /Mensual

Reseñas 2


Ubicaciones del servidor


Idea Stack Servers in SeattleEstados Unidos
Comparar
Piloto de confianza Epic Host
Puntuación - 7.4
Epic Host Logo
Epic Host

Anfitrión épico

Cloud hosting
$2.37 /Mensual

Reseñas 1


Ubicaciones del servidor


Epic Host Servers in New DelhiIndia Epic Host Servers in UnionEstados Unidos
Comparar
Piloto de confianza itanets.co.uk
Puntuación - 7
itanets.co.uk Logo
itanets.co.uk

itanets.co.uk

JSP HOSTING 1
$5.19 /Mensual

Reseñas 2

Comparar
Piloto de confianza Digital Ocean
Puntuación - 3.8
Digital Ocean Logo
Digital Ocean

Océano digital

$5 /mo
$5 /Mensual

Reseñas 214

38 Cupones

Ubicaciones del servidor


Digital Ocean Servers in IndiaIndia Digital Ocean Servers in New YorkEstados Unidos Digital Ocean Servers in AmsterdamPaíses Bajos Digital Ocean Servers in LondonReino Unido Digital Ocean Servers in TorontoCanadá Digital Ocean Servers in Frankfurt am MainAlemania Digital Ocean Servers in SingaporeSingapur
Comparar
Puntuación - 10
HOST PRO KE Logo
HOST PRO KE

HOST PRO KE

Host Pro Starter
$9.38 /Anual


Ubicaciones del servidor


HOST PRO KE Servers in GermanyAlemania
Comparar
Puntuación - 9.4
Accu WebHosting Logo
Accu WebHosting

Accu WebHosting

Windows Personal Web Hosting
$2.99 /Mensual

19 Cupones

Ubicaciones del servidor


Accu WebHosting Servers in FranceFrancia Accu WebHosting Servers in DenverEstados Unidos Accu WebHosting Servers in MumbaiIndia Accu WebHosting Servers in AmsterdamPaíses Bajos Accu WebHosting Servers in Frankfurt am MainAlemania Accu WebHosting Servers in SydneyAustralia Accu WebHosting Servers in LondonReino Unido Accu WebHosting Servers in PolandPolonia Accu WebHosting Servers in CanadaCanadá Accu WebHosting Servers in SingaporeSingapur
Comparar
Puntuación - 9
Be hostings Logo
Be hostings

Ser anfitriones

StarterSSL
$3.36 /Mensual


Ubicaciones del servidor


Be hostings Servers in BrusselsBélgica
Comparar
Puntuación - 4.3
Gear Host Logo
Gear Host

Anfitrión de equipo

CloudSite Hobby
$5 /Mensual


Ubicaciones del servidor


Gear Host Servers in DenverEstados Unidos
Comparar
Puntuación - 1
Mikro VPS Logo
Mikro VPS

Mikro VPS

VPS SSD 1
$4.39 /Mensual


Ubicaciones del servidor


Mikro VPS Servers in BudapestHungría
Comparar
Puntuación - 0
Simple Node Logo
Simple Node

Nodo simple

OpenVZ - 256MB
$3 /Mensual

Comparar

 

Node.js

 

 

Node.js es un tiempo de ejecución de JavaScript multiplataforma de código abierto que se ejecuta en servidores. Desde su lanzamiento en 2009, esta plataforma se ha vuelto extremadamente popular y juega un papel muy importante en el campo del desarrollo web en estos días. Si consideramos la cantidad de estrellas que un proyecto ha recolectado en GitHub como un indicador de popularidad, entonces Node.js, que tiene más de 50,000 estrellas, es un proyecto muy, muy popular.

 

La plataforma Node.js se basa en el motor JavaScript V8 de Google, que se utiliza en el navegador Google Chrome. Esta plataforma se utiliza principalmente para crear servidores web, pero su alcance no se limita a esto.

 

Veamos las características principales de Node.js.

 

Velocidad

 

Uno de los principales atractivos de Node.js es la velocidad. El código JavaScript ejecutado en Node.js puede ser dos veces más rápido que el código escrito en lenguajes compilados como C o Java, y órdenes de magnitud más rápido que lenguajes interpretados como Python o Ruby. La razón de esto es la arquitectura sin bloqueo de la plataforma, y ​​los resultados específicos dependen de los puntos de referencia utilizados, pero en general, Node.js es una plataforma muy rápida.

 

Sencillez

 

La plataforma Node.js es fácil de aprender y usar. De hecho, es francamente muy simple, especialmente en comparación con otras plataformas de servidor.

 

JavaScript

 

JavaScript se ejecuta en el entorno Node.js. Esto significa que millones de desarrolladores front-end que ya usan JavaScript en el navegador pueden escribir código tanto del lado del servidor como del lado del cliente en el mismo lenguaje de programación sin tener que aprender una herramienta completamente nueva para pasar al desarrollo del lado del servidor.

 

El navegador y el servidor utilizan los mismos conceptos de lenguaje. Además, Node.js puede realizar una transición rápida a los nuevos estándares ECMAScript a medida que se implementan en la plataforma.

 

No es necesario esperar a que los usuarios actualicen sus navegadores para esto, ya que Node.js es un entorno del lado del servidor que tiene el control total del desarrollador. Como resultado, las nuevas funciones de idioma están disponibles cuando instala una versión compatible de Node.js.

 

Motor V8

 

En el corazón de Node.js, entre otras soluciones, se encuentra el motor JavaScript V8 de código abierto de Google, que se utiliza en Google Chrome y otros navegadores. Esto significa que Node.js se está aprovechando de miles de ingenieros que hicieron que el tiempo de ejecución de JavaScript Chrome fuera increíblemente rápido y continúan trabajando para mejorar V8.

 

Asincronía

 

En los lenguajes de programación tradicionales (C, Java, Python, PHP), todas las instrucciones se bloquean de forma predeterminada, a menos que el desarrollador se encargue explícitamente de ejecutar el código de forma asincrónica. Como resultado, si, por ejemplo, en un entorno de este tipo, realiza una solicitud de red para descargar algún código JSON, la ejecución del flujo desde el que se realiza la solicitud se suspenderá hasta que se reciba y procese la respuesta.

 

JavaScript hace que sea mucho más fácil escribir código asincrónico y sin bloqueo utilizando un solo hilo, devoluciones de llamada y un enfoque de desarrollo basado en eventos. Cada vez que necesitamos realizar una operación pesada, pasamos una devolución de llamada al mecanismo apropiado, que será llamado inmediatamente después de completar esta operación. Como resultado, no es necesario esperar los resultados de dichas operaciones para que el programa continúe funcionando.

 

Un mecanismo similar se originó en los navegadores. No podemos permitirnos el lujo de esperar, digamos, unaAJAXsolicitar terminar sin poder responder a las acciones del usuario, como los clics en los botones. Para que sea conveniente para los usuarios trabajar con páginas web, todo, tanto la descarga de datos de la red como el procesamiento de clics en los botones, debe ocurrir simultáneamente, en tiempo real.

 

Si alguna vez ha creado un controlador de eventos de clic de botón, ya ha utilizado técnicas de programación asincrónica.

 

Los mecanismos asincrónicos permiten que un solo servidor Node.js maneje simultáneamente miles de conexiones sin sobrecargar al programador con tareas de administración de subprocesos y ejecución de código paralelo. Tales cosas son a menudo fuentes de error.

 

Node.js proporciona al desarrollador mecanismos de E / S básicos sin bloqueo y, en general, las bibliotecas utilizadas en el marco de Node.js se escriben utilizando paradigmas sin bloqueo.Esto hace que el comportamiento de bloqueo sea la excepción y no la norma.

 

Cuando Node.js necesita realizar una operación de E / S, como cargar datos de la red, acceder a una base de datos o al sistema de archivos, en lugar de bloquear el hilo principal esperando los resultados de dicha operación, Node.js iniciará su ejecución y continuar haciendo otras cosas hasta que se reciban los resultados de esta operación.

 

Bibliotecas

 

Con la facilidad y conveniencia de trabajar con un administrador de paquetes para Node.js llamado npm, el ecosistema de Node.js está prosperando. Ahora hay más de medio millón de paquetes de código abierto en el registro de npm que cualquier desarrollador de Node.js puede usar libremente.

 

Habiendo revisado algunas de las características principales de la plataforma Node.js, probémoslo en acción. Empecemos por la instalación.

 

 

Node.js

 

 

Instalación de Node.js

 

Node.js se puede instalar de varias formas, que cubriremos en un momento. Por lo tanto, se pueden encontrar los paquetes de instalación oficiales para todas las plataformas principales.

 

Hay otra forma muy conveniente de instalar Node.js, que consiste en usar el administrador de paquetes provisto en el sistema operativo. Por ejemplo, el administrador de paquetes de macOS, que es el estándar de facto en esta área, se llama Homebrew.

 

Si tiene uno en su sistema, puede instalar Node.js ejecutando este comando en la línea de comando:

 

brew install nodo

 

Puede encontrar una lista de administradores de paquetes para otros sistemas operativos, incluidos Linux y Windows, aquí.

 

Un administrador de versiones popular de Node.js es nvm. Esta herramienta le permite cambiar cómodamente entre diferentes versiones de Node.js, con su ayuda puede, por ejemplo, instalar y probar una nueva versión de Node.js, y luego, si es necesario, volver a la anterior. Nvm también es útil en una situación en la que necesita probar algún código en una versión anterior de Node.js.

 

Para que los principiantes utilicen los instaladores oficiales de Node.js. Para los usuarios de macOS, se recomendaría instalar Node.js usando Homebrew. Ahora que ha instalado Node.js, es hora de escribir "Hola mundo".

 

Primera aplicación de Node.js

 

El ejemplo más común de una primera aplicación Node.js es un servidor web simple. Aquí está su código:

const http = require ('http')

const hostname = '127.0.0.1'

puerto constante = 3000

const server = http.createServer ((req, res) = & gt; {

res.statusCode = 200

res.setHeader ('Tipo de contenido', 'texto / sin formato')

res.end ('Hola mundo \ n')

})

server.listen (puerto, nombre de host, () = & gt; {

console.log (`Servidor que se ejecuta en http: // $ {nombre de host}: $ {puerto} /`)

})

 

Para ejecutar este código, guárdelo en un archivo server.js y ejecute el siguiente comando en la terminal:

 

node server.js

 

Para verificar el servidor, abra un navegador e ingrese en la barra de direcciones http://127.0.0.1:3000, es decir, la dirección del servidor que se mostrará en la consola después de su lanzamiento exitoso. Si todo funciona como debería, la página mostrará "Hello World".

 

Veamos este ejemplo.

 

Primero, observe que el código contiene el comando para conectar el módulo HTTP.

 

La plataforma Node.js tiene un excelente conjunto estándar de módulos, que incluye mecanismos bien desarrollados para trabajar con la red.

El método de objeto createServer () http crea un nuevo servidor HTTP y lo devuelve.

 

El servidor está configurado para escuchar en un puerto específico en un host específico. Cuando el servidor está listo, se llama a la devolución de llamada correspondiente, informándonos que el servidor se está ejecutando.

Cuando el servidor recibe una solicitud, se activa una solicitud de evento que proporciona dos objetos. La primera es la solicitud (req, el objeto http.IncomingMessage), la segunda es la respuesta (res, el objeto http.ServerResponse). Son los mecanismos más importantes para manejar solicitudes HTTP.

 

El primero nos proporciona información sobre la solicitud. En nuestro ejemplo simple, no usamos estos datos, pero, si es necesario, usando el objeto, req, puede acceder a los encabezados de solicitud y los datos que se pasan en él.

 

El segundo es necesario para formar y enviar una respuesta a una solicitud.

 

En este caso, formamos la respuesta a la solicitud de la siguiente manera. Primero, establecemos el código de estado de la propiedad en un valor de 200, lo que indica una operación exitosa:

 

res.statusCode = 200

A continuación, establecemos el título Content-Type:

res.setHeader ('Tipo de contenido', 'texto / sin formato')

Luego completamos la preparación de la respuesta agregando su contenido como argumento al método end ():

res.end ('Hola mundo \ n')

 

Ya hemos mencionado que se ha formado un poderoso ecosistema alrededor de la plataforma Node.js. Analicemos ahora algunos frameworks populares y herramientas auxiliares para Node.js.

 

Frameworks y herramientas auxiliares para Node.js

 

Node.js es una plataforma de bajo nivel. Con el fin de simplificar su desarrollo y facilitar la vida de los programadores, se han creado una gran cantidad de bibliotecas. Algunos de ellos se han vuelto muy populares con el tiempo. Aquí hay una pequeña lista de bibliotecas que creo que están bien hechas y que vale la pena explorar:

 

Rápido: Esta biblioteca proporciona al desarrollador una herramienta extremadamente simple pero poderosa para construir servidores web. La clave del éxito de Express ha sido un enfoque minimalista y un enfoque en los mecanismos básicos del lado del servidor sin intentar imponer una visión de una arquitectura de servidor de "ventanilla única".

 

Meteorito: Es un potente marco de trabajo de pila completa que adopta un enfoque isomórfico para desarrollar aplicaciones JavaScript y utilizar código tanto en el cliente como en el servidor. Once Meteor era una herramienta independiente que incluye todo lo que un desarrollador podría necesitar. Ahora también se integra con bibliotecas frontend como React, Vue y Angular. Meteor, además de desarrollar aplicaciones web comunes, también se puede utilizar en el desarrollo móvil.

 

Koa: Este marco web está construido por el mismo equipo detrás de Express. Sobre la base de años de experiencia con Express, se desarrolló con un enfoque en la simplicidad y la compacidad. Este proyecto surgió como una solución al problema de realizar cambios importantes en Express que son incompatibles con otros mecanismos marco que podrían dividir a la comunidad.

 

Next.js: Este marco está diseñado para organizar la representación del lado del servidor de aplicaciones React.

 

Micro: Es una biblioteca muy ligera para crear microservicios HTTP asíncronos.

Socket.io. Es una biblioteca para desarrollar aplicaciones de red en tiempo real.

 

De hecho, en el ecosistema Node.js, puede encontrar una biblioteca auxiliar para casi cualquier tarea. Como puede imaginar, se necesita mucho tiempo para construir un ecosistema de este tipo. La plataforma Node.js apareció en 2009. Durante su existencia, han sucedido muchas cosas que deberían ser conocidas por un programador que quiera aprender esta plataforma.

 

Una breve historia de Node.js

 

Node.js cumple 9 años este año. Esto, por supuesto, no es tanto cuando se compara esta edad con la edad de JavaScript, que ya tiene 23 años, o con la edad de 25 años de la web como la conocemos si se cuenta desde la llegada del Mosaico. navegador.

 

9 años es poco tiempo para la tecnología, pero ahora parece que la plataforma Node.js siempre ha existido.

 

Con Node.js de las primeras versiones de la plataforma cuando solo tenía 2 años. Incluso entonces, a pesar de que no había tanta información sobre Node.js, ya se podía sentir que Node.js es muy serio.

 

Ahora hablemos de las tecnologías detrás de Node.js y echemos un vistazo rápido aprincipales novedades relacionadas con esta plataforma.

 

Por tanto, JavaScript es un lenguaje de programación que se creó en Netscape como lenguaje de scripting para manipular páginas web en el navegador Netscape Navigator.

Parte del negocio de Netscape consistía en vender servidores web, que incluían un entorno llamado Netscape LiveWire. Le permitió crear páginas web dinámicas utilizando JavaScript del lado del servidor.

 

la idea de usar JS para el desarrollo del lado del servidor es mucho más antigua que Node.js. Esta idea es casi tan antigua como JavaScript, pero en el momento en cuestión, JS del lado del servidor no era popular.

 

Uno de los factores clave que hicieron que la plataforma Node.js fuera tan extendida y popular es cuando apareció por primera vez. Entonces, unos años antes, JavaScript había comenzado a considerarse un lenguaje serio. Esto sucedió gracias a aplicaciones Web 2.0 como Google Maps o Gmail, que mostraron al mundo el poder de las tecnologías web modernas.

 

Gracias a la guerra competitiva de navegadores, que continúa hasta el día de hoy, el rendimiento de los motores JavaScript ha aumentado significativamente. Los equipos de desarrollo detrás de los principales navegadores están trabajando todos los días para mejorar el rendimiento de sus soluciones, lo que tiene un efecto beneficioso sobre JavaScript en general.

 

Uno de estos motores es el V8 ya mencionado, que se utiliza en el navegador Chrome y se utiliza en Node.js. Es uno de los resultados de los desarrolladores de navegadores que se esfuerzan por obtener un código JavaScript de alto rendimiento.

 

Por supuesto, la popularidad de Node.js se basa no solo en una afortunada coincidencia y en el hecho de que la plataforma nació en el momento adecuado. Presentó al mundo un enfoque innovador para el desarrollo de JavaScript en el lado del servidor. Veamos los principales hitos en la historia de Node.js.

 

2009


  • La aparición de Node.js

  • Haciendo la primera variante npm.

 

2010

  • La aparición de Express.

  • La aparición de Socket.io.

 

2011


  • Lanzamiento de Npm 1.0.

  • Grandes empresas como LinkedIn y Uber han comenzado a utilizar Node.js.

 

2012


  • El rápido aumento de la popularidad de Node.js.

 

2013


  • La aparición de Ghost, la primera plataforma importante para publicaciones que utilizan Node.js.

  • Lanzamiento de Koa.

 

2014


  • Este año han tenido lugar eventos dramáticos. Apareció el proyecto IO.js, que es una bifurcación de Node.js, cuyo propósito, entre otras cosas, era introducir el soporte ES6 y acelerar el desarrollo de la plataforma.

 

2015


  • Se funda la Fundación Node.js.

  • Fusionando IO.js y Node.js.

  • En npm, es posible trabajar con módulos privados.

  • Rendimiento Node.js 4 (cabe señalar que las versiones 1, 2 y 3 de la plataforma no lo fueron).

 

2016


  • Incidente del paquete de la almohadilla izquierda.

  • La aparición de Yarn.

  • Lanzamiento de Node.js 6.

 

2017


  • Npm está empezando a prestar más atención a la seguridad.

  • Versión de Node.js 8

  • La aparición del soporte para HTTP / 2.

  • V8 está oficialmente reconocido como un motor JS diseñado no solo para Chrome sino también para Node.

  • Hay 3 mil millones de descargas de npm cada semana.

 

2018


  • Lanzamiento de Node.js 10.

  • Soporte para módulos ES.

  • Soporte experimental de mjs.