Documentos de Académico
Documentos de Profesional
Documentos de Cultura
I. INTRODUCCIÓN ................................................................................................................... 3
II. MARCO TEÓRICO ................................................................................................................ 4
2.1. Node Js ......................................................................................................................... 4
2.1.1. ¿Qué es Node.js? .................................................................................................. 4
2.1.2. ¿Qué puede hacer Node.js? ................................................................................. 5
2.1.3. ¿Qué es un archivo Node.js? ................................................................................ 5
2.1.4. ¿Por qué Node.js? ................................................................................................. 5
2.2. Funcionamiento de Node Js .......................................................................................... 6
2.3. NPM (Node Package Manager) .................................................................................... 8
2.4. Módulos Node Js ........................................................................................................... 9
2.4.1. Módulos nativos ......................................................................................................... 9
2.4.2. Módulos de archivos................................................................................................ 10
2.5. Módulo HTTP Node.js ................................................................................................. 10
2.6. Node.js como un servidor de archivos ........................................................................ 11
III. CONCLUSIONES ............................................................................................................ 12
IV. Bibliografía ....................................................................................................................... 13
“Node Js”
Tabla de Ilustraciones
Ilustración 1 - Thread Singleton .................................................................................................... 7
Ilustración 2 - Programación asíncrona ........................................................................................ 8
Ilustración 3 - Resultado de ejemplo en programación asíncrona ................................................ 8
Ilustración 4 - Ejemplo módulo HTTP ......................................................................................... 10
Ilustración 5 - Resultado del ejemplo de módulo HTTP .............................................................. 10
pág. 2
“Node Js”
I. INTRODUCCIÓN
pág. 3
“Node Js”
La meta primordial del Node.js es proporcionar una manera fácil para la construcción de
programas de red escalables, este objetivo se da en vista de la actual situación que
presentan los lenguajes de programación de hoy en día, donde la cantidad máxima de
conexiones está limitada por la cantidad de memoria RAM que tenga el sistema, Node.js
resuelve esto cambiando la forma en que se realiza la conexión, ya que en vez de hacer
lo anteriormente descrito, dispara la ejecución de un evento dentro del proceso de motor
de node.js.
En teoría Node puede soportar tantas conexiones como sockets tenga el sistema. En un
sistema UNIX este límite puede rondar por las 65.000 conexiones, un número muy alto
teóricamente. Sin embargo, en la realidad, la cifra depende de muchos factores, como la
cantidad de información que la aplicación este distribuyendo a los clientes. A pesar de
esto una aplicación podría mantener 20.000-25.000 clientes a la vez sin haber apenas
retardo en las respuestas. Queremos recalcar que Node.js es un programa de servidor,
este no viene a reemplazar a lo que son Apache o Tomcat que son básicamente
servidores listos para instalar e implementar. (Campusano, Fredes, Cordero, & Badilla,
2014)
pág. 4
“Node Js”
Node.js es gratis
Node.js puede crear, abrir, leer, escribir, borrar y cerrar archivos en el servidor
Node.js puede crear, abrir, leer, escribir, borrar y cerrar archivos en el servidor
Node.js archivos deben ser iniciadas en el servidor antes de tener ningún efecto
Una tarea común para un servidor web puede ser abrir un archivo en el servidor y
devolver el contenido al cliente.
pág. 5
“Node Js”
Algunas Características
Rápido
Escalable
Manejo de Eventos
Asíncrono
Ligero
Eficiente
Comunidad Activa
Su Tecnología nos permite ejecutar este motor en el lado del servidor, abriendo un nuevo
abanico de posibilidades en cuanto al mundo de desarrollo se refiere. Para ello su
entorno ha desarrollado un conjunto amplio de librerías comparables a las de otras
plataformas. Y, por otro lado, se han eliminado algunas funcionalidades que en el entorno
de servidor no tenían sentido como por ejemplo el uso de Document Object Model.
Además trabaja con un único hilo de ejecución (Single Thread) que es el encargado de
organizar todo el flujo de trabajo que se deba realizar. (Ezequiel, 2017)
pág. 6
“Node Js”
La idea principal de Node.js: uso no bloqueante, event driven I/O, permanecer ligero y
eficiente en la superficie del uso intensivo de datos en tiemporeal de las aplicaciones que
se ejecutan en dispositivos distribuidos.
Frente a las tradicionales técnicas de servicio web donde cada conexión (solicitud)
genera un nuevo subproceso, retomando la RAM del sistema y finalmente a tope a la
cantidad de RAM disponible, Node.js opera en un solo subproceso, no utiliza el bloqueo
de llamadas de E/S, esto permite admitir decenas de miles de conexiones simultáneas.
(Ver ilustración 1) (Ezequiel, 2017)
b) Programación Asíncrona
Éste es un concepto que toma especial importancia, dado que Node JS fue pensado
desde el primer momento para potenciar los beneficios de la programación asíncrona.
pág. 7
“Node Js”
Imaginemos que un programa tiene un fragmento de código que tarda cinco segundos
en resolverse. En la mayoría de las programaciones precedentes, durante todo ese
tiempo el hilo de ejecución se encuentra ocupado, esperando a que pasen esos cinco
segundos, o los que sea, antes de continuar con las siguientes instrucciones. En la
programación asíncrona eres capaz de liberar el proceso de modo que los recursos se
quedan disponibles para hacer otras cosas durante el tiempo de espera.
Un ejemplo claro de esto es una llamada a un servicio web, o una consulta a la base de
datos. Una vez realizada la solicitud generalmente pasará un tiempo hasta que se
obtenga la respuesta. Ese tiempo, por corto que sea, dejaría un proceso esperando en
la programación tradicional y en la asíncrona simplemente se libera.
El código se organiza por medio de módulos, la idea de los módulos NPM es muy similar
a la de Ruby o java: un conjunto de componentes reutilizables, como los paquetes o
pág. 8
“Node Js”
NPM
ExpressJS (Web para Node, con muchas utilidades como ser, routing, sesión,
NowJS (Aplicaciones web en tiempo real de forma muy simple, con llamadas a
funciones js
(clienteservidor/ servidorcliente)
Un módulo puede estar compuesto por 1 o más archivos, Node.js tiene un sistema simple
de carga de módulos, En Node.js, los archivos y los módulos tienen una correspondencia
de uno a uno, Un módulo puede depender de uno o más módulos de Node.js.
Existen 2 tipos de módulos: los módulos principales (Core modules) y los módulos de
archivo (File modules). (Sánchez, 2015)
Mientras que la mayoría de los módulos son archivos JavaScript sin formato, algunos
módulos son imágenes binarias específicas de plataforma. Estos módulos se compilan
en el momento de la instalación, normalmente mediante Python y node-gyp. Puesto que
Cloud Services de Azure se basan en la carpeta node_modules que se implementa como
parte de la aplicación, los módulos nativos incluidos como parte de los módulos
pág. 9
“Node Js”
Azure App Service no es compatible con todos los módulos nativos y podría presentar
errores al compilar módulos con requisitos previos específicos. Aunque algunos módulos
conocidos, como MongoDB, tienen dependencias nativas opcionales y funcionan
correctamente sin ellas, dos soluciones alternativas han demostrado funcionar
correctamente con casi todos los módulos nativos actualmente disponibles. (Sánchez,
2015)
El módulo HTTP puede crear un servidor HTTP que escucha a los puertos del servidor y
responde al cliente. (W3.CSS, 2017)
pág. 10
“Node Js”
var fs = require('fs');
Leer archivos
Actualizar archivos
Borrar archivos
pág. 11
“Node Js”
III. CONCLUSIONES
pág. 12
“Node Js”
IV. Bibliografía
Campusano, C., Fredes, N., Cordero, F., & Badilla, C. (2014). Node.JS: Plataforma de fácil
programación de seervidores para aplicaciones de red escalables. Obtenido de
http://profesores.elo.utfsm.cl/~agv/elo322/1s14/projects/reports/G15/Informe_Latex.pdf
Ezequiel, C. (2017). monografias.com. Obtenido de
https://www.monografias.com/docs114/investigacion-y-desarrollo-aplicacion-tecnologia-
nodejs/investigacion-y-desarrollo-aplicacion-tecnologia-nodejs.shtml
Sánchez, J. (19 de 02 de 2015). frontendlabs.io. Obtenido de https://frontendlabs.io/2166--npm-
como-crear-modulos-nodejs-publicar-npmjs
W3.CSS. (2017). w3schools.com. Obtenido de
https://www.w3schools.com/nodejs/nodejs_intro.asp
pág. 13