Node.js es prácticamente una biblioteca de E / S con eventos para el motor de JavaScript V8 de Google.
Los expertos lo recomiendan para crear y desplegar aplicaciones de tiempo real intensivas en tráfico y datos que deben ejecutarse igual en varias plataformas y dispositivos.
Node.js se considera actualmente como la plataforma superior para ejecutar el código JavaScript del lado del servidor, que se utiliza en producción en grandes empresas como Google, eBay, Yahoo, LinkedIn, Microsoft, Cloud9 y muchos más.
La plataforma está muy bien documentada y se beneficia de un repositorio de módulos muy grande, gestionado a través de la utilidad npm (Gestor de paquetes Node.js).
La versión 6.x se recomienda para entornos de producción estables, mientras que la versión 7.x es estable, pero incluye características experimentales.
& nbsp;
Novedades en esta versión:
- eventos: asegúrese de que existan funciones de consola
- fs: agregue la opción autoClose a fs.createWriteStream
- http: mejora el manejo expectativo del encabezado
- nodo: permite cargar módulos con -i
- v8, src: expone estadísticas sobre espacios de almacenamiento dinámico (v8.getHeapSpaceStatistics ())
Novedades en la versión 6.7.0 / 4.6.0:
- eventos: asegúrese de que existan funciones de consola
- fs: agregue la opción autoClose a fs.createWriteStream
- http: mejora el manejo expectativo del encabezado
- nodo: permite cargar módulos con -i
- v8, src: expone estadísticas sobre espacios de almacenamiento dinámico (v8.getHeapSpaceStatistics ())
Novedades en la versión 6.5.0 / 4.5.0:
- eventos: asegúrese de que existan funciones de consola
- fs: agregue la opción autoClose a fs.createWriteStream
- http: mejora el manejo expectativo del encabezado
- nodo: permite cargar módulos con -i
- v8, src: expone estadísticas sobre espacios de almacenamiento dinámico (v8.getHeapSpaceStatistics ())
Novedades en la versión 6.3.0 / 4.4.7:
- eventos: asegúrese de que existan funciones de consola
- fs: agregue la opción autoClose a fs.createWriteStream
- http: mejora el manejo expectativo del encabezado
- nodo: permite cargar módulos con -i
- v8, src: expone estadísticas sobre espacios de almacenamiento dinámico (v8.getHeapSpaceStatistics ())
Novedades en la versión 6.2.0 / 4.4.5:
Nuevo en Node.js 5.0.0 (30 de octubre de 2015)
Novedades en la versión 6.0.0 / 4.4.3:
- eventos: asegúrese de que existan funciones de consola
- fs: agregue la opción autoClose a fs.createWriteStream
- http: mejora el manejo expectativo del encabezado
- nodo: permite cargar módulos con -i
- v8, src: expone estadísticas sobre espacios de almacenamiento dinámico (v8.getHeapSpaceStatistics ())
Novedades en la versión 4.4.3 / 5.10.1:
- eventos: asegúrese de que existan funciones de consola
- fs: agregue la opción autoClose a fs.createWriteStream
- http: mejora el manejo expectativo del encabezado
- nodo: permite cargar módulos con -i
- v8, src: expone estadísticas sobre espacios de almacenamiento dinámico (v8.getHeapSpaceStatistics ())
Novedades en la versión 4.4.0 / 5.8.0:
- eventos: asegúrese de que existan funciones de consola
- fs: agregue la opción autoClose a fs.createWriteStream
- http: mejora el manejo expectativo del encabezado
- nodo: permite cargar módulos con -i
- v8, src: expone estadísticas sobre espacios de almacenamiento dinámico (v8.getHeapSpaceStatistics ())
Novedades en la versión 4.2.6 / 5.5.0:
- eventos: asegúrese de que existan funciones de consola
- fs: agregue la opción autoClose a fs.createWriteStream
- http: mejora el manejo expectativo del encabezado
- nodo: permite cargar módulos con -i
- v8, src: expone estadísticas sobre espacios de almacenamiento dinámico (v8.getHeapSpaceStatistics ())
Novedades en la versión 4.2.2 / 5.2.0:
- fs.readFile * (), fs.writeFile * () y fs.appendFile * () ahora también aceptan un descriptor de archivo como primer argumento
- Se corrigió un error en el que las solicitudes http canalizadas bloquearían
- npm: actualizado a la versión 3.3.6 desde 2.14.7
- Intento de reutilizar el controlador del temporizador para setTimeout (). unref ().
- Se agregó soporte ALPN
- Las opciones de TLS ahora pueden pasarse en un objeto para crear Secure Share ()
- zlib: la descompresión ahora arroja entradas truncadas
Novedades en la versión 4.1.1:
- child_process: ChildProcess.prototype.send () y process.send () funcionan de manera asíncrona en todas las plataformas, por lo que se ha introducido un parámetro de devolución de llamada opcional que se invocará una vez que se haya enviado el mensaje, es decir .end (mensaje [, sendHandle ] [, devolución de llamada]).
- node: Renombre el código "io.js" a "Node.js".
- node-gyp: esta versión incluye una versión actualizada de node-gyp que funciona con todas las versiones de Node.js y io.js, incluidas las compilaciones de candidatos nocturnos y de versiones. Desde io.js v3 y Node.js v4 en adelante, solo descargará una tarball de encabezados al crear addons en lugar de la fuente completa.
- npm: actualice a la versión 2.14.2 de 2.13.3, incluya una actualización de seguridad, consulte https://github.com/npm/npm/releases/tag/v2.14.2 para obtener más detalles.
- temporizadores: mejoró el rendimiento del temporizador de portar la implementación de 0.12, más correcciones menores.
- util: Las funciones util.is * () han quedado en desuso, comenzando con advertencias de desaprobación en la documentación de esta versión, se alienta a los usuarios a buscar alternativas más robustas en el registro npm.
- v8: actualice a la versión 4.5.103.30 de 4.4.63.30.
Novedades en la versión 0.12.7:
- openssl: actualiza a 1.0.1p
- npm: actualice a 2.11.3
- V8: parche JitCodeEvent de pick-cherry de aguas arriba
- win, msi: cree una carpeta npm en el directorio AppData li>
Novedades en la versión 0.12.4:
- npm: actualice a 2.10.1
- V8: revertir v8 Array.prototype.values () eliminación
- win: traer de vuelta el soporte xp / 2k3
Novedades en la versión 0.12.2:
- openssl: actualice a 1.0.1m (direccionamiento de múltiples CVES)
Novedades en la versión 0.12.0:
- Transmisiones 3:
- La implementación de Stream ahora funciona de la manera que pensaba que ya debería, sin introducir ningún cambio en la API. Básicamente, esto significa que no te quedes atascado en "modo antiguo", solo hay flujos que fluyen o no.
- Las transmisiones ahora admiten el uso de mecanismos de corcho y descorche para evitar que el sistema de descarga se escriba en el sistema si una aplicación va a realizar muchas grabaciones seguidas. Hay un uncork implícito realizado cuando finaliza una secuencia grabable.
- HTTP:
- maxSockets ya no están limitados a 5. El valor predeterminado ahora se establece en Infinity con el desarrollador y el sistema operativo controlados sobre cuántas conexiones simultáneas puede mantener abierta una aplicación a un host determinado.
- El soporte adecuado de KeepAlive significa que los zócalos permanecerán abiertos hasta que el tiempo de espera en la hora configurada, esté cerrado por el lado remoto o el proceso finalice. Los desarrolladores ya no tienen que asegurarse de que las solicitudes se hayan canalizado para mantener el socket abierto, o utilizar un módulo alternativo para obtener ese soporte.
- Los desarrolladores también pueden enjuagar de forma explícita a los líderes para garantizar que el tiempo para el primer byte sea bajo y que las conexiones proxy se mantengan abiertas.
- Cluster:
- Ahora tiene dos modos de operación, el nuevo valor predeterminado es un mecanismo de distribución por turnos en el que el maestro acepta nuevas conexiones y las distribuye a sus trabajadores. Si lo desea, puede volver a optar por el antiguo método en el que sus trabajadores son responsables de las conexiones de acceso.
- TLS:
- Tenemos el nuevo mecanismo TLSWrap debajo del capó, esto elimina bastantes saltos de ida y vuelta entre JavaScript y nuestras implementaciones de C ++.
- API agregadas para devoluciones de llamada SNI asíncronas, grapado OCSP y eventos de almacenamiento.
- Buffer:
- Usamos un mecanismo más preciso para asignar memoria para buffers ahora, lo que significa que verá menos sobrecarga e impacto de aferrarse a pequeñas porciones de Buffers. Esto reduce la cantidad de presión de memoria en el sistema, lo que significa que las ejecuciones de GC son más rápidas, lo que significa que Node.js está menos CPU y, por lo tanto, una menor latencia para sus aplicaciones.
- child_process:
- spawnSync / execSync se han agregado para facilitar procesos secundarios sincrónicos, advirtiendo que el proceso de su nodo no avanzará mientras espera que el niño salga, ¡caveat emptor!
- Crypto:
- Se agregaron API para cargar motores personalizados para usar con compilados en OpenSSL.
- Más API soportan el suministro de frases de paso.
- Se agregaron API para el cifrado / descifrado de clave pública / privada RSA.
- VM:
- El módulo ahora se basa en el módulo Contextify, que comparte los valores de sandbox para evitar que los cambios perdidos dentro de la ejecución aparezcan en el contexto principal.
- Soporte inicial para ECMAScript Internationalization API 1.0 (ECMA-402)
- De forma predeterminada, los binarios Node.js v0.12.0 se envían con soporte ECMA-402, pero solo para el idioma inglés. En otras palabras, la API ECMA-402 está funcionando como era de esperar, pero solo se incluyen los datos para el idioma inglés.
Novedades en la versión 0.10.36:
- openssl: actualización a 1.0.1l
- v8: corrige el depurador y la regresión de modo estricto
- v8: bucle no ocupado en el subproceso de perfil de la CPU
Novedades en la versión 0.10.34:
- uv: actualización a v0.10.30
- zlib: actualice a v1.2.8
- child_process: check execFile args es una matriz
- child_process: check fork args es una matriz
- crypto: actualización de certificados raíz
- dominios: arregla problemas con abortar en no capturados
- temporizadores: evite la exploración lineal en _unrefActive
- temporizadores: arreglar unref () fuga de memoria
- v8: agregar api para abortar en una excepción no detectada
- depurador: corregir cuando se usa "usar estricto"
Novedades en la versión 0.10.33:
- openssl: Actualización a 1.0.1j
- uv: actualización a v0.10.29
- child_process: soporta correctamente args opcionales
- crypto: Deshabilita autonegociación para SSLv2 / 3 de forma predeterminada
Novedades en la versión 0.10.32:
- npm: actualización a 1.4.28
- v8: corrige un bloqueo introducido por la versión anterior
- configure: agregue --openssl-no-asm flag
- crypto: usa dominios para cualquier método de retrollamada
- http: no envíe 0rnrn en las respuestas TE HEAD
- cadena de consulta: arreglar la anulación de unescape
- url: Agregar soporte para separadores RFC 3490
Novedades en la versión 0.10.31:
- v8: backport CVE-2013-6668.
- openssl: Actualización a v1.0.1i.
- npm: Actualización a v1.4.23.
- cluster: la desconexión no debe ser sincrónica.
- fs: corrige fs.readFileSync fd leak cuando obtiene RangeError.
- stream: fix Readable.wrap objectMode falsy values.
- temporizadores: arregla temporizadores con retraso de no enteros en suspensión.
Novedades en la versión 0.10.30:
- uv: actualice a v0.11.14
- v8: actualización 3.21.18.3
- assert: indica si se genera un mensaje de excepción
- buffer: agregar buf.toArrayBuffer () API
- cluster: arregla un evento prematuro de 'desconexión'
- crypto: agrega compatibilidad con SPKAC
- depurador: cuenta el espacio para los números de línea correctamente
- depurador: hacer bucles ocupados SIGUSR1-interruptible
- depurador: repite el último comando
- depurador: muestra la línea actual
- dgram: send () puede aceptar cadenas
- dns: renombrar dominio a nombre de host
- dns: establece la propiedad hostname en el objeto de error
- dtrace, mdb_v8: admite más cadenas, tipos de tramas
- http: agregue statusMessage
- http: expone métodos admitidos
Novedades en la versión 0.10.29:
- child_process: no establezca argumentos antes de lanzar
- child_process: spawn () no arroja TypeError
- constantes: export O_NONBLOCK
- crypto: mejora el uso de la memoria
- fs: cerrar archivo si fstat () falla en readFile ()
- lib: nombre de los métodos de prototipo de EventEmitter
- tls: corregir problema de rendimiento
Novedades en la versión 0.10.27:
- child_process: arregla el interbloqueo al enviar controladores
- child_process: arreglar el identificador de envío dos veces
- crypto: no utilice nombres de cifrado / hash en minúsculas
- dtrace: error del enlazador de solución en FreeBSD
- http: no emite un socket no legible EOF
- http: invoca createConnection cuando no hay agente
- stream: elimina la comprobación inútil
- temporizador: no reprogramar el cubo del temporizador en un dominio
- url: trata lo mismo que /
- util: formatear como error si instanceof Error
Novedades en la versión 0.10.25:
- uv: actualice a v0.10.23
- npm: actualice a v1.3.24
- v8: arregla la enumeración de objetos con muchas propiedades
- child_process: fix spawn () argumentos opcionales
- cluster: informe más errores a los trabajadores
- dominios: exit () solo afecta dominios activos
- src: el controlador OnFatalError debe abortar ()
- stream: writes puede devolver false pero se olvida de emitir drain
Novedades en la versión 0.10.24:
- uv: actualice a v0.10.21
- npm: actualice a 1.3.21
- v8: corrección de respaldo para CVE-2013- {6639 | 6640}
- build: unix install node y dep library headers
- cluster, v8: fix --logfile =% p.log
- módulo: solo paquete de caché principal
Qué hay de nuevo en la versión 0.10.22:
- npm: actualice a 1.3.14
- uv: actualice a v0.10.19
- child_process: no afirme en eventos de descriptor de archivo obsoletos
- darwin: corrige "No responde" en el monitor de actividad de Mavericks
- debugger: Fix bug en sb () con script sin nombre
- repl: no inserta duplicados en las terminaciones
- src: corrige la pérdida de memoria en los manejadores cerrados
Novedades en la versión 0.10.19:
- uv: actualice a v0.10.17
- npm: actualice a 1.3.11
- readline: manejar entrada comenzando con caracteres de control
- configure: agregue la opción mips-float-abi (soft, hard)
- stream: objectMode transforms permite valores falsey
- tls: evita que los valores duplicados vuelvan de la lectura
Novedades en la versión 0.10.17:
- uv: actualización v0.10.14
- http_parser: no acepta los métodos PUN / GEM como PUT / GET
- tls: arreglo de aserción cuando se destruye ssl en lectura
- stream: Lanza 'error' si se eliminan los oyentes
- dgram: arreglo de la aserción en mal enviar () argumentos
- readline: pause stdin antes de apagar el modo raw terminal
Novedades en la versión 0.10.16:
- npm: actualice a 1.3.8
- crypto: fix assert () en la entrada hexadecimal con formato incorrecto
- crypto: corrige la pérdida de memoria en randomBytes () ruta de error
- eventos: corrige la pérdida de memoria, no filtra nombres de eventos
- http: manipula correctamente las codificaciones hex / base64
- http: mejora el rendimiento fragmentado res.write (buf)
- stream: Fix error de doble tubo emit
Novedades en la versión 0.11.2:
- Actualiza a 0.11.2
- Actualiza a 3.19.0
- Actualiza a 1.2.21
- build: Makefile debería respetar configure --prefix
- cluster: use el equilibrio de carga round-robin
- depurador, cluster: cada trabajador tiene un nuevo puerto de depuración
- debugger: `restart` con un puerto de depuración personalizado
- depurador: puntos de interrupción en scripts no cargados todavía
- evento: EventEmitter # setMaxListeners () devuelve esto
- eventos: agregue EventEmitter.defaultMaxListeners
Novedades en la versión 0.10.10:
- uv: actualice a 0.10.10
- npm: actualice a 1.2.25
- url: analiza correctamente ciertas URL formadas de forma extraña
- stream: unshift ('') es un noop
Novedades en la versión 0.10.9:
- npm: actualice a 1.2.24
- uv: actualice a v0.10.9
- repl: fix JSON.parse error check
- tls: proper .destroySoon
- tls: invoke write cb solo después del final de lectura opuesto
- tls: ignore .shutdown () syscall error
Novedades en la versión 0.10.7:
- npm: actualice a 1.2.21
- crypto: no ignore verificar el argumento de codificación
- buffer, crypto: corregir la regresión de codificación predeterminada
- temporizadores: fix setInterval () assert
Novedades en la versión 0.10.6:
- stream: make Objectible de soporte de Readable.wrap, flujos vacíos
- child_process: arregla la entrega del identificador
- crypto: corrección de la regresión de rendimiento
- src: DRY string coding / decoding
Novedades en la versión 0.10.5:
- compilación: compatibilidad agregada para Visual Studio 2012.
- http: no intente destruir sockets inexistentes.
- crypto: LazyTransform en propiedades, no en métodos.
- afirmar: poner información en err.message, no err.name.
- dgram: fix no address bind ().
- handle_wrap: arreglar la referencia del puntero NULL.
- os: corrige un desbordamiento de búfer poco probable en os.type ().
- stream: corrige las condiciones de la carrera unshift ().
Novedades en la versión 0.10.4:
- http: soporte de escritura (datos, 'hex').
- crypto: dh secret debe ser acolchado a la izquierda.
- proceso: exponer NODE_MODULE_VERSION en process.versions.
- crypto: arregla la llamada del constructor en secuencias criptográficas.
- net: cuenta para codificar en .byteLength.
- net: arregla la iteración del búfer en bytes escritos.
- crypto: cero no es un error si escribe 0 bytes.
Novedades en la versión 0.10.2:
- tls: elimine la comprobación de límites dañinos innecesarios.
- crypto: hacer que getCiphers () devuelva cifrados no SSL.
- crypto: verifique el argumento de tamaño randomBytes ().
- temporizadores: no calcule la propiedad Timeout._when.
- temporizadores: corrige el error de ms por separado.
- temporizadores: maneja el desbordamiento int32 firmado en enroll ().
- stream: Fija la pérdida en Transform en condiciones muy específicas.
- stream: maneja oyentes de eventos 'legibles'.
- stream: Fix early finish en Escrituras en escrituras de longitud cero.
- dominio: reparación de devolución de dominio desde MakeCallback.
- child_process: no emita el mismo identificador dos veces.
Comentarios que no se encuentran