Node.js

Entorno de ejecución de JavaScript
Node.js
Autor(es) original(es)Ryan Dahl
Desarrollador(es)Fundación OpenJS
Lanzamiento inicial27 de mayo de 2009 ; hace 15 años [1] ( 27-05-2009 )
Versión estable
23.0.0 [2]  / 16 de octubre de 2024 ; hace 6 días ( 16 de octubre de 2024 )
Repositorio
  • github.com/nodejs/node
Escrito enJavaScript , C++ , Python , C
Sistema operativoz/OS , Linux , macOS , Microsoft Windows , SmartOS , FreeBSD , OpenBSD , IBM AIX [3]
TipoEntorno de ejecución
LicenciaLicencia MIT [4] [5]
Sitio webnodejs.org 

Node.js es un entorno de ejecución de JavaScript multiplataforma y de código abierto que puede ejecutarse en Windows , Linux , Unix , macOS y más. Node.js se ejecuta en el motor JavaScript V8 y ejecuta código JavaScript fuera de un navegador web .

Node.js permite a los desarrolladores utilizar JavaScript para escribir herramientas de línea de comandos y para la creación de scripts del lado del servidor . La capacidad de ejecutar código JavaScript en el servidor se utiliza a menudo para generar contenido dinámico de páginas web antes de que la página se envíe al navegador web del usuario. En consecuencia, Node.js representa un paradigma de "JavaScript en todas partes" , [6] unificando el desarrollo de aplicaciones web en torno a un único lenguaje de programación , en lugar de utilizar diferentes lenguajes para la programación del lado del servidor y del lado del cliente.

Node.js tiene una arquitectura basada en eventos capaz de realizar operaciones de E/S asincrónicas . Estas opciones de diseño tienen como objetivo optimizar el rendimiento y la escalabilidad en aplicaciones web con muchas operaciones de entrada/salida, así como en aplicaciones web en tiempo real (por ejemplo, programas de comunicación en tiempo real y juegos de navegador ). [7]

El proyecto de desarrollo distribuido Node.js anteriormente estaba gobernado por la Fundación Node.js [8] y ahora se ha fusionado con la Fundación JS para formar la Fundación OpenJS . La Fundación OpenJS es facilitada por el programa de Proyectos Colaborativos de la Fundación Linux [9] .

Historia

Ryan Dahl, creador de Node.js, en 2010
Rocket Turtle, la mascota oficial de Node.js desde febrero de 2024

Node.js fue escrito inicialmente por Ryan Dahl en 2009, [10] aproximadamente 13 años después de la introducción del primer entorno de JavaScript del lado del servidor, LiveWire Pro Web de Netscape . [11] La versión inicial solo era compatible con Linux y Mac OS X. Su desarrollo y mantenimiento estuvo dirigido por Dahl y luego patrocinado por Joyent . [12]

Dahl criticó la capacidad limitada de Apache HTTP Server para manejar muchas conexiones simultáneas (más de 10 000), así como el paradigma de programación dominante de programación secuencial, en el que las aplicaciones podían bloquear procesos enteros o provocar la creación de múltiples pilas de ejecución para conexiones simultáneas. [13]

Dahl demostró el proyecto en la JSConf europea inaugural el 8 de noviembre de 2009. [14] [15] [16] Node.js combinó el motor JavaScript V8 de Google , un bucle de eventos y una API de E/S de bajo nivel . [17]

En enero de 2010, se introdujo un administrador de paquetes para el entorno Node.js llamado npm . [18] El administrador de paquetes permite a los programadores publicar y compartir paquetes Node.js , junto con el código fuente que los acompaña, y está diseñado para simplificar la instalación, actualización y desinstalación de paquetes. [17]

En junio de 2011, Microsoft y Joyent implementaron una versión nativa de Node.js para Windows. [19] La primera versión de Node.js compatible con Windows se lanzó en julio de 2011.

En enero de 2012, Dahl cedió la gestión del proyecto al creador de npm, Isaac Schlueter. [20] En enero de 2014, Schlueter anunció que Timothy J. Fontaine lideraría el proyecto. [21]

En diciembre de 2014, Fedor Indutny creó io.js, una bifurcación de Node.js creada debido a la insatisfacción con la gobernanza de Joyent como una alternativa de gobernanza abierta con un comité técnico independiente. El objetivo era habilitar una estructura que fuera más receptiva a los aportes de la comunidad, incluida la actualización de io.js con las últimas versiones del motor JavaScript Google V8, divergiendo del enfoque de Node.js en ese momento. [22]

La Fundación Node.js, formada para reconciliar Node.js e io.js bajo un mismo estandarte, fue anunciada en febrero de 2015. [23] La fusión se concretó en septiembre de 2015 con la combinación de Node.js v0.12 e io.js v3.3 en Node v4.0. [24] Esta fusión trajo las características de V8 ES6 a Node.js y comenzó un ciclo de lanzamiento de soporte a largo plazo. [25] Para 2016, el sitio web de io.js recomendó regresar a Node.js y anunció que no habría más lanzamientos de io.js, terminando efectivamente la bifurcación y consolidando el éxito de la fusión. [26]

En 2019, la Fundación JS y la Fundación Node.js se fusionaron para formar la Fundación OpenJS .

El 6 de septiembre de 2023, se lanzó Node.js 20.6.0. La actualización trajo consigo la incorporación de compatibilidad integrada con .envarchivos, la eliminación de la marca import.meta.resolve, la introducción de un nuevo registro de API para ganchos de personalización de módulos y un nuevo gancho de inicialización. Además, el gancho de carga de personalización de módulos ahora es compatible con CommonJS , y los complementos de Node.js C++ han obtenido compatibilidad experimental con cppgc (Oilpan), que es una biblioteca de recolección de basura de C++ para V8. [27]node:module

Herrada

El logotipo de Node.js presenta un hexágono verde con bandas superpuestas para representar la naturaleza multiplataforma del entorno de ejecución. [28] La Rocket Turtle fue elegida como la mascota oficial de Node.js en febrero de 2024 luego de un concurso de diseño. [29]

Descripción general

Node.js permite la creación de servidores web y herramientas de red utilizando JavaScript y una colección de "módulos" que manejan varias funcionalidades básicas. [14] [17] [30] [31] [32] Se proporcionan módulos para E/S del sistema de archivos , redes ( DNS , HTTP , TCP , TLS/SSL o UDP ), datos binarios (buffers), funciones de criptografía , flujos de datos y otras funciones básicas. [17] [31] [33] Los módulos de Node.js utilizan una API diseñada para reducir la complejidad de escribir aplicaciones de servidor. [17] [31]

JavaScript es el único lenguaje que Node.js soporta de forma nativa, pero hay muchos lenguajes compilables a JS disponibles. [34] Como resultado, las aplicaciones Node.js se pueden escribir en CoffeeScript , [35] Dart , TypeScript , ClojureScript y otros.

Node.js se utiliza principalmente para crear programas de red como servidores web. [30] La diferencia más significativa entre Node.js y PHP es que la mayoría de las funciones en PHP se bloquean hasta su finalización (los comandos se ejecutan solo después de que finalizan los comandos anteriores), mientras que las funciones de Node.js no son bloqueantes (los comandos se ejecutan simultáneamente o incluso en paralelo , [36] [37] [¿ síntesis incorrecta? ] y utilizan devoluciones de llamadas para señalar la finalización o el fracaso). [30]

Node.js es oficialmente compatible con Linux , macOS y Microsoft Windows 8.1 y Server 2012 (y posteriores), [3] con soporte de nivel 2 para SmartOS e IBM AIX y soporte experimental para FreeBSD . OpenBSD también funciona y hay versiones LTS disponibles para IBM i (AS/400). [38] El código fuente también se puede crear en sistemas operativos similares que no son oficialmente compatibles, como NonStop OS [39] y servidores Unix .

Arquitectura de la plataforma

Node.js permite el desarrollo de servidores web rápidos en JavaScript mediante programación basada en eventos . [17] Los desarrolladores pueden crear servidores escalables sin utilizar subprocesos mediante un modelo simplificado que utiliza devoluciones de llamadas para señalar la finalización de una tarea. [17] [ página necesaria ] Node.js conecta la facilidad de un lenguaje de scripting (JavaScript) con el poder de la programación de red Unix. [17]

Node.js se construyó sobre el motor JavaScript V8 de Google, ya que era de código abierto bajo la licencia BSD , y contiene soporte integral para protocolos fundamentales como HTTP , DNS y TCP . [14] La popularidad existente de JavaScript hizo que Node.js fuera accesible para la comunidad de desarrollo web . [14]

Apoyo de la industria

Existen miles de bibliotecas de código abierto para Node.js, la mayoría de las cuales se encuentran alojadas en el sitio web de npm. Se llevan a cabo múltiples conferencias y eventos para desarrolladores que apoyan a la comunidad de Node.js, incluidos NodeConf, Node Interactive y Node Summit, así como una serie de eventos regionales.

La comunidad de código abierto ha desarrollado marcos web para acelerar el desarrollo de aplicaciones. Entre estos marcos se incluyen Express.js , Socket.IO , Sails.js , Next.js y Meteor . [17] [40] También se han creado varios paquetes para interactuar con otros lenguajes o entornos de ejecución como Microsoft .NET . [41]

Los IDE de escritorio modernos proporcionan funciones de edición y depuración específicamente para aplicaciones Node.js. Dichos IDE incluyen Atom , Brackets , JetBrains WebStorm , [42] [43] Microsoft Visual Studio (con Node.js Tools para Visual Studio, [44] o TypeScript con definiciones de Node [45] [46] [47] [48] ), NetBeans , [49] Nodeclipse Enide Studio [50] ( basado en Eclipse ) y Visual Studio Code . [51] [52] Algunos IDE en línea también admiten Node.js, como Codeanywhere , Eclipse Che , Cloud9 IDE y el editor de flujo visual en Node-RED .

Node.js es compatible con varias plataformas de alojamiento en la nube, como Jelastic , Google Cloud Platform , AWS Elastic Beanstalk , Azure Web Apps y Joyent .

Lanzamientos

Comunicado [53]EstadoNombre en claveFecha de lanzamientoFin del mantenimiento
Versión antigua, ya no se mantiene:0.10.xVersión antigua, ya no se mantiene:Fin de la vida11 de marzo de 201331 de octubre de 2016
Versión antigua, ya no se mantiene:0.12.xVersión antigua, ya no se mantiene:Fin de la vida06-02-201531 de diciembre de 2016
Versión antigua, ya no se mantiene:4.xVersión antigua, ya no se mantiene:Fin de la vidaArgón [54]08-09-201530 de abril de 2018
Versión antigua, ya no se mantiene:5.xVersión antigua, ya no se mantiene:Fin de la vida29 de octubre de 201530 de junio de 2016
Versión antigua, ya no se mantiene:6.xVersión antigua, ya no se mantiene:Fin de la vidaBoro [54]26 de abril de 201630 de abril de 2019
Versión antigua, ya no se mantiene:7.xVersión antigua, ya no se mantiene:Fin de la vida25 de octubre de 201630 de junio de 2017
Versión antigua, ya no se mantiene:8.xVersión antigua, ya no se mantiene:Fin de la vidaCarbono [54]30 de mayo de 201731 de diciembre de 2019
Versión antigua, ya no se mantiene:9.xVersión antigua, ya no se mantiene:Fin de la vida1 de octubre de 201730 de junio de 2018
Versión antigua, ya no se mantiene:10.xVersión antigua, ya no se mantiene:Fin de la vidaDubnio [54]24 de abril de 201830 de abril de 2021
Versión antigua, ya no se mantiene:11.xVersión antigua, ya no se mantiene:Fin de la vida23 de octubre de 201801-06-2019
Versión antigua, ya no se mantiene:12.xVersión antigua, ya no se mantiene:Fin de la vidaErbio [54]23 de abril de 201930 de abril de 2022
Versión antigua, ya no se mantiene:13.xVersión antigua, ya no se mantiene:Fin de la vida22 de octubre de 201901-06-2020
Versión antigua, ya no se mantiene:14.xVersión antigua, ya no se mantiene:Fin de la vidaFermio [54]21 de abril de 202030 de abril de 2023
Versión antigua, ya no se mantiene:15.xVersión antigua, ya no se mantiene:Fin de la vida20 de octubre de 202001-06-2021
Versión antigua, ya no se mantiene:16.xVersión antigua, ya no se mantiene:Fin de la vidaGalio [54]20 de abril de 202111 de septiembre de 2023 [55]
Versión antigua, ya no se mantiene:17.xVersión antigua, ya no se mantiene:Fin de la vida19 de octubre de 202101-06-2022
Versión antigua, pero aún mantenida:18.xVersión antigua, pero aún mantenida:Mantenimiento LTSHidrógeno [54]19 de abril de 202230 de abril de 2025
Versión antigua, ya no se mantiene:19.xVersión antigua, ya no se mantiene:Fin de la vida18 de octubre de 202201-06-2023
Versión antigua, pero aún mantenida:20.xVersión antigua, pero aún mantenida:LTS activoHierro [56]18 de abril de 202330 de abril de 2026
Versión antigua, pero aún mantenida:21.xVersión antigua, pero aún mantenida:Mantenimiento[54]17 de octubre de 202301-06-2024
Versión estable actual: 22.xVersión estable actual: ActualYod [56] [54]24 de abril de 202430 de abril de 2027
Lanzamiento futuro:23.xLanzamiento futuro:Planificado[54]14 de octubre de 202401-06-2025
Lanzamiento futuro:24.xLanzamiento futuro:PlanificadoKriptón [56]22 de abril de 202530 de abril de 2028
Leyenda:
Versión antigua, sin mantenimiento
Versión antigua, aún mantenida
Última versión
Última versión preliminar
Lanzamiento futuro

Las nuevas versiones principales de Node.js se lanzan desde la rama principal de GitHub cada seis meses. Las versiones pares se lanzan en abril y las impares en octubre. Cuando se lanza una nueva versión impar, la versión par anterior pasa a la transición a Soporte a Largo Plazo (LTS), que le otorga a esa versión 12 meses de soporte activo a partir de la fecha en que se la designa como LTS. Una vez que expiran estos 12 meses, una versión LTS recibe 18 meses adicionales de soporte de mantenimiento. Una versión activa recibe versiones retroactivas de los cambios unas semanas después de que se incluyen en la versión actual. Una versión de mantenimiento recibe solo correcciones críticas y actualizaciones de la documentación. [54] El Grupo de Trabajo LTS gestiona la estrategia y la política en colaboración con el Comité de Dirección Técnica de la Fundación Node.js.

Detalles técnicos

Node.js es un entorno de ejecución de JavaScript que procesa las solicitudes entrantes en un bucle, llamado bucle de eventos .

Internos

Node.js utiliza libuv para gestionar eventos asincrónicos. Libuv es una capa de abstracción para la funcionalidad de la red y del sistema de archivos tanto en sistemas basados ​​en Windows como en POSIX, como Linux, macOS , OSS en NonStop y Unix. Node.js se basa en nghttp2 para la compatibilidad con HTTP. A partir de la versión 20, Node.js utiliza la biblioteca ada, que proporciona compatibilidad actualizada con URL WHATWG . A partir de la versión 19.5, Node.js utiliza la biblioteca simdutf para una rápida validación y transcodificación de Unicode. A partir de la versión 21.3, Node.js utiliza la biblioteca simdjson para un rápido análisis de JSON.

Enhebrado

Node.js opera en un bucle de eventos de un solo subproceso , utilizando llamadas de E/S no bloqueantes , lo que le permite admitir decenas de miles de conexiones simultáneas sin incurrir en el costo del cambio de contexto de subproceso . [57] El diseño de compartir un solo subproceso entre todas las solicitudes que utilizan el patrón de observador está destinado a crear aplicaciones altamente concurrentes, donde cualquier función que realice E/S debe utilizar una devolución de llamada . Para dar cabida al bucle de eventos de un solo subproceso, Node.js utiliza la biblioteca libuv , que, a su vez, utiliza un grupo de subprocesos de tamaño fijo que maneja algunas de las operaciones de E/S asincrónicas no bloqueantes. [7]

Un grupo de subprocesos se encarga de la ejecución de tareas paralelas en Node.js. La llamada a la función del subproceso principal envía tareas a la cola de tareas compartidas, que los subprocesos del grupo de subprocesos extraen y ejecutan. Las funciones del sistema inherentemente no bloqueantes, como la red, se traducen en sockets no bloqueantes del lado del núcleo, mientras que las funciones del sistema inherentemente bloqueantes, como la E/S de archivos, se ejecutan de forma bloqueante en sus propios subprocesos. Cuando un subproceso del grupo de subprocesos completa una tarea, informa de ello al subproceso principal, que, a su vez, se activa y ejecuta la devolución de llamada registrada.

Una desventaja de este enfoque de un solo subproceso es que Node.js no permite el escalamiento vertical al aumentar la cantidad de núcleos de CPU de la máquina en la que se ejecuta sin usar un módulo adicional, como cluster, [36] StrongLoop Process Manager, [58] o pm2. [59] Sin embargo, los desarrolladores pueden aumentar la cantidad predeterminada de subprocesos en el grupo de subprocesos de libuv. Es probable que el sistema operativo (OS) del servidor distribuya estos subprocesos entre varios núcleos. [60] Otro problema es que los cálculos de larga duración y otras tareas limitadas por la CPU congelan todo el bucle de eventos hasta su finalización. [ cita requerida ]

V8

V8 es el motor de ejecución de JavaScript que se creó inicialmente para Google Chrome . Luego, Google lo convirtió en código abierto en 2008. Escrito en C++ , V8 compila el código fuente de JavaScript en código de máquina nativo en tiempo de ejecución . [7] A partir de 2016, también incluye Ignition, un intérprete de bytecode .

Gestión de paquetes

npm es el administrador de paquetes preinstalado para la plataforma de servidor Node.js. Instala programas Node.js desde el registro npm y organiza la instalación y administración de programas Node.js de terceros.

Bucle de eventos

Node.js se registra en el sistema operativo para que este le notifique eventos de E/S asincrónicos , como nuevas conexiones. Dentro del entorno de ejecución de Node.js, los eventos activan devoluciones de llamadas y cada conexión se maneja como una pequeña asignación de montón . Tradicionalmente, cada conexión era manejada por procesos o subprocesos del sistema operativo relativamente pesados. Node.js utiliza un bucle de eventos para E/S concurrentes, en lugar de procesos o subprocesos. [61] A diferencia de otros servidores controlados por eventos, [¿ cuál? ] el bucle de eventos de Node.js no necesita ser llamado explícitamente. En cambio, se definen devoluciones de llamadas y el servidor ingresa automáticamente al bucle de eventos al final de la definición de devolución de llamada. Node.js sale del bucle de eventos cuando no hay más devoluciones de llamadas para realizar.

WebAsamblea

Node.js es compatible con WebAssembly y a partir de Node 14 tiene soporte experimental de WASI , la interfaz del sistema WebAssembly.

Enlaces nativos

Node.js ofrece una forma de crear "complementos" a través de una API basada en C.node llamada N-API, que se puede utilizar para producir módulos cargables (importables) a partir del código fuente escrito en C/C++. [62] Los módulos se pueden cargar directamente en la memoria y ejecutar desde el entorno JS como módulos CommonJS simples. La implementación de la N-API se basa en objetos internos de Node.js y V8 en C/C++ que requieren que los usuarios importen ( #include ) encabezados específicos de Node.js en su código fuente nativo. [62]

Como la API de Node.js está sujeta a cambios importantes a nivel binario, los módulos deben crearse y enviarse para versiones específicas de Node.js para que funcionen correctamente. Para solucionar el problema, terceros han introducido contenedores C/C++ de código abierto sobre la API que alivian parcialmente el problema. Simplifican las interfaces, pero como efecto secundario también pueden introducir complejidad con la que los encargados del mantenimiento deben lidiar. Aunque la funcionalidad principal de Node.js reside en una biblioteca integrada de JavaScript, los módulos escritos en C++ se pueden utilizar para mejorar las capacidades y el rendimiento de las aplicaciones.

Para producir dichos módulos es necesario tener un compilador de C++ apropiado y los encabezados necesarios (estos últimos normalmente se entregan con Node.js), por ejemplo, gcc , clang o MSVC++ .

La N-API es similar a la interfaz nativa de Java .

Gobernanza del proyecto

En 2015, varias ramas de la comunidad Node.js comenzaron a trabajar bajo la Fundación Node.js, que es independiente de los proveedores. El objetivo declarado de la organización "es permitir la adopción generalizada y ayudar a acelerar el desarrollo de Node.js y otros módulos relacionados a través de un modelo de gobernanza abierta que fomente la participación, la contribución técnica y un marco para la gestión a largo plazo por parte de un ecosistema comprometido con el éxito de Node.js". [63]

El Comité Directivo Técnico (TSC) de la Fundación Node.js es el órgano técnico de gobierno de la Fundación Node.js. El TSC es responsable del repositorio principal de Node.js, así como de los proyectos dependientes y adyacentes. Generalmente, el TSC delega la administración de estos proyectos a grupos de trabajo o comités. [64] El grupo LTS que administra las versiones con soporte a largo plazo es uno de esos grupos. Otros grupos actuales incluyen Sitio web, Streams, Build, Diagnóstico, i18n, Evangelismo, Docker, Addon API, Evaluación comparativa, Post-mortem, Intl, Documentación y Pruebas. [65]

En agosto de 2017, un tercio de los miembros del TSC dimitieron debido a una disputa relacionada con el código de conducta del proyecto. [66]

Miembros actuales del TSC [67]
Nombre de usuarioNombre completo
Aduh95Antonio de Hamel
ApapirovskiAnatoli Papirovski
benjamin rBenjamin Gruenbaum
Puente ARRubén Bridgewater
Geoffrey BoothGeoffrey Booth
Gireesh PunathilGireesh Punathil
JasnellJames M. Snell
JoyeecheungJoyee Cheung
leyendasChengzhong Wu
Marco IppolitoMarco Hipólito
McCollinaMatteo Collina
mhdawsonMichael Dawson
Más bajoMoshe Atlow
Rafael GSSRafael Gonzaga
Richard LauRichard Lau
ronagRoberto Nagy
RuyadornoRuy Adorno
ShogunPandaPablo Insogna
targosMichael Zasso
TniessenTobias Nießen

Referencias

  1. ^ "node-v0.x-archive en GitHub". GitHub . Consultado el 2 de agosto de 2014 .
  2. ^ "Versión 23.0.0". 16 de octubre de 2024. Consultado el 22 de octubre de 2024 .
  3. ^ ab "nodejs/node". GitHub . 13 de abril de 2022.
  4. ^ "node/LICENSE at master". GitHub . Fundación Node.js. 17 de septiembre de 2018 . Consultado el 17 de septiembre de 2018 .
  5. ^ "La licencia MIT". Iniciativa de código abierto . 17 de septiembre de 2018 . Consultado el 17 de septiembre de 2018 .
  6. ^ gcuomo (24 de octubre de 2013). "JavaScript Everywhere and the Three Amigos (Into the wild BLUE yonder!)". www.ibm.com . Archivado desde el original el 14 de noviembre de 2013 . Consultado el 24 de octubre de 2013 .
  7. ^ abc Laurent Orsini (7 de noviembre de 2013). "Lo que necesita saber sobre Node.js". readwrite.com . Consultado el 6 de febrero de 2022 .
  8. ^ "Fundación Node.js - Node.js". nodejs.org . Consultado el 4 de julio de 2015 .
  9. ^ "Proyectos de colaboración de la Fundación Linux". linuxfoundation.org . 4 de julio de 2015 . Consultado el 4 de julio de 2015 .
  10. ^ "Acerca de Node.js y por qué debería agregar Node.js a su conjunto de habilidades". Training.com . 11 de septiembre de 2016. Archivado desde el original el 1 de abril de 2017. Consultado el 23 de octubre de 2016 .
  11. ^ Staff, CNET News (15 de octubre de 1996). "Netscape abre un ataque a la intranet". CNET . Consultado el 20 de abril de 2017 .
  12. ^ Ryan Dahl (9 de noviembre de 2010). «Joyent y Node». Grupos de Google . Consultado el 5 de febrero de 2015 .
  13. ^ Garbar, Dzmitry. "¿PHP 7 vs Node.js? ¡Pueden ser socios, no competidores para un desarrollador!". belitsoft.com . Consultado el 21 de diciembre de 2016 .
  14. ^ abcd Sams Aprende a usar Node.js en 24 horas, Sams Publishing, 5 de septiembre de 2012
  15. ^ Ubl, Malte (9 de septiembre de 2009). «JSConf.eu 2009, Berlín, Alemania». www.jsconf.eu . Consultado el 9 de septiembre de 2009 .
  16. ^ "Ryan Dahl: Presentación original de Node.js". 8 de junio de 2012. Archivado desde el original el 15 de diciembre de 2021 – vía www.youtube.com.
  17. ^ abcdefghi Node.js profesional: creación de software escalable basado en JavaScript, John Wiley & Sons, 01-Oct-2012
  18. ^ "Primeras versiones de npm". GitHub . Consultado el 27 de julio de 2016 .
  19. ^ Ryandahl (23 de junio de 2011). "Porting Node to Windows With Microsoft's Help" (Cómo portar Node a Windows con la ayuda de Microsoft). nodejs.org . Consultado el 17 de abril de 2016 .
  20. ^ Dahl, Ryan. "New gatekeeper" (El nuevo guardián) . Consultado el 26 de octubre de 2013 .
  21. ^ Schlueter, Isaac (15 de enero de 2014). "La próxima fase de Node.js" . Consultado el 21 de enero de 2014 .
  22. ^ Preguntas y respuestas: ¿Por qué io.js decidió bifurcar Node.js?, InfoWorld Tech Watch
  23. ^ "La Fundación Node.js promueve la colaboración comunitaria, anuncia nuevos miembros y ratifica la gobernanza técnica". Archivado desde el original el 24 de junio de 2015 . Consultado el 4 de julio de 2015 .
  24. ^ "Node.js Foundation combina Node.js y io.js en una única base de código en una nueva versión". nodejs.org . 14 de septiembre de 2015 . Consultado el 28 de enero de 2016 .
  25. ^ "io.js y Node.js se fusionan". medium.com . 19 de mayo de 2015 . Consultado el 27 de junio de 2015 .
  26. ^ Io.js, JavaScript I/O, "io.js se ha fusionado nuevamente con el proyecto Node.js. No habrá más lanzamientos de io.js. Todas las características de io.js están disponibles en Node.js v4 y versiones posteriores".
  27. ^ "Versiones anteriores". Node.js .
  28. ^ "Guía de marca" (PDF) . Node.js . OpenJS Foundation . Consultado el 22 de marzo de 2024 .
  29. ^ "Node.JS en X: "Conoce a Rocket Turtle, hay muchas formas 👋"" . Consultado el 22 de marzo de 2024 .
  30. ^ abc Node.js para desarrolladores PHP, O'Reilly Media, Inc., 2013
  31. ^ Fundamentos de Node.js, Packt Publishing, 10 de noviembre de 2015
  32. ^ Smashing Node.js: JavaScript en todas partes, John Wiley & Sons, 14 de agosto de 2012
  33. ^ Módulos, sitio web de Nodejs
  34. ^ "Lista de lenguajes que compilan en JS". Github .
  35. ^ CoffeeScript en Node.js. O'Reilly Media, Inc. 15 de abril de 2013. ISBN 9781449316846. Recuperado el 17 de mayo de 2015 .
  36. ^ ab "Módulo de clúster de Node.js". nodejs.org . Consultado el 19 de octubre de 2017 .
  37. ^ "Módulo child_process de Node.js". nodejs.org . Consultado el 19 de octubre de 2017 .
  38. ^ Fundación, Node js. "Instalación de Node.js mediante el gestor de paquetes". Node.js . Consultado el 19 de mayo de 2019 .
  39. ^ "bomBora - Node.js para NonStop". infrasoft.com.au . Infrasoft. Archivado desde el original el 11 de marzo de 2018 . Consultado el 14 de agosto de 2015 .
  40. ^ Guía de Express.js: el libro completo sobre Express.js, Azat Mardan, 28 de mayo de 2014
  41. ^ Edge.js cierra la brecha entre Node.js y .NET, TechRepublic, Tony Patton, 1 de julio de 2014
  42. ^ Node.js, WebStorm admite la integración con el entorno de ejecución Node.js, Ayuda de WebStorm
  43. ^ Ejecución y depuración de Node.js, Ayuda de WebStorm
  44. ^ "Herramientas de Node.js para Visual Studio". microsoft.com . Consultado el 1 de febrero de 2016 .
  45. ^ soywiz/typescript-node-definitions Tipificaciones de TypeScript para algunos módulos populares de node.js, GitHub
  46. ^ Definitivamente Typed, GitHub
  47. ^ "El repositorio de definiciones de tipos de TypeScript de alta calidad". definitelytyped.org . Archivado desde el original el 3 de febrero de 2016.
  48. ^ ImageBoard, una aplicación Node.js + Express + MongoDB creada con TypeScript en el servidor Archivado el 18 de mayo de 2019 en Wayback Machine , Ejemplos de TypeScript
  49. ^ Krill, Paul (10 de noviembre de 2015). "Node.js toma protagonismo en NetBeans 8.1". infoworld.com . InfoWorld . Consultado el 10 de noviembre de 2015 .
  50. ^ Nodeclipse, Enide - Desarrollo de Node.JS en Eclipse, sitio web de Nodeclipse
  51. ^ Hola Visual Studio Code (con NodeJS), Canal 9, Microsoft
  52. ^ Aplicaciones Node.js con VS Code, Visual Studio Code
  53. ^ "Lanzamientos". Node.js . 23 de agosto de 2023.
  54. ^ abcdefghijkl "nodejs/Release". GitHub . Consultado el 3 de mayo de 2018 .
  55. ^ Se adelanta la fecha de finalización de la vida útil de Node.js 16, sitio web de Node.js
  56. ^ abc "Node.JS CODENAMES.md". GitHub . Consultado el 6 de septiembre de 2023 .
  57. ^ "¡Node.js con 1 millón de conexiones simultáneas!". Blog de caustik . 19 de agosto de 2012.
  58. ^ "Administrador de procesos StrongLoop". strong-pm.io .
  59. ^ "GitHub - Unitech/pm2: Gestor de procesos de producción para aplicaciones Node.js con un balanceador de carga integrado". GitHub . 12 de junio de 2021.
  60. ^ Aleksander Kasiuk (22 de abril de 2015). "Sobre los problemas con los subprocesos en node.js - Future Processing".
  61. ^ Acerca de Node.js, sitio web de Node.js
  62. ^ ab "Complementos de C++ | Documentación de Node.js v14.12.0". nodejs.org . Consultado el 26 de septiembre de 2020 .
  63. ^ Fundación, Node.js. «Fundación Node.js | Node.js». nodejs.org . Consultado el 8 de marzo de 2017 .
  64. ^ "nodejs/TSC". GitHub . Consultado el 8 de marzo de 2017 .
  65. ^ Fundación, Node.js. «Grupos de trabajo | Node.js». nodejs.org . Archivado desde el original el 27 de febrero de 2017 . Consultado el 8 de marzo de 2017 .
  66. ^ Whittaker, Zack, Tras el colapso de la gobernanza, los líderes de Node.js luchan por su supervivencia , ZDNet, 25 de agosto de 2017
  67. ^ "Miembros votantes de tsc". Github.com . 16 de mayo de 2024.

Lectura adicional

  • Sitio web oficial

Obtenido de "https://es.wikipedia.org/w/index.php?title=Node.js&oldid=1252607916"