JS - JavaScript en El Lado servidor-NodeJS
JS - JavaScript en El Lado servidor-NodeJS
lado servidor:
NodeJS
Índice
| JavaScript del lado servidor 3
Instalación 4
1
Utilización 5
Manipulación de peticiones 8
Instalación 8
Creando rutas 9
Recibiendo parámetros 10
Recibiendo POST 10
UTILIZACIÓN
console.log(“Hola Mundo”);
Salvamos el archivo, y lo ejecutamos a través de Node.js (en
Se puede desarrollar en cualquier IDE de desarrollo que permita consola dentro de nuestro equipo):
escribir código JS de tal manera que podemos ejecutar un js
desde línea de comandos (se presupone un archivo js que
llamado helloworld.js)
node holamundo.js
Una vez tengamos nuestro servidor lanzado vemos que lo hemos INSTALACIÓN
puesto a escuchar en el puerto 8081 por lo que un cliente desde
el navegador podría acceder a él de esta manera: Para instalar dicho módulo solo sería necesario escribir esta
línea desde consola de comandos:
http://127.0.0.1:8081/index.htm
NodeJS.
CREANDO RUTAS
process.env.PORT
app.set(‘port’,esprocess.env.PORT
una variable de|| entorno,
3000); si no está Las rutas nos permiten direccionar peticiones a los
configurada para guardar el puerto en que debe correr la controladores correctos. Vamos a empezar agregando el código
aplicación, entonces toma el 3000. de un controlador para una ruta:
app.get(‘/’, function(request,
response) { response.send(‘¡Hola,
Express!’);
JavaScript en el lado servidor: NodeJS |
RECIBIENDO PARÁMETROS
Si queremos recibir algún parámetro en una ruta debemos app.post(‘/users’, function(request, response)
especificar en el String el nombre del parámetro son “:” { var username = request.body.username;
adelante:
response.send(‘¡Hola, ‘ + username + ‘!’);
});
app.get(‘/users/:userName’, function(request,
response)
{
var name = request.params.userName; Antes de correr este código debemos agregar bodyParser fuera
del método, porque express no parsea el cuerpo del request por
response.send(‘¡Hola, ‘ + name + ‘!’); defecto:
});
app.use(express.bodyParser());
Ahora si corremos la app y vamos a
“http://localhost:3000/users/ oscar” veremos que se despliega el
mensaje “¡Hola, Òscar!”.
JavaScript en el lado servidor: NodeJS | TELEFÓNICA //
• buffer • stream
Es el objeto por defecto en Node para el manejo de datos Interfaz abstracta que representa los flujos de caracteres de
binarios. Sin embargo, la introducción en JavaScript de los Unix
typedArrays desplazará a los Buffers como manera de de la cual muchas clases en Node heredan.
tratar esta clase de datos.
• crypto
Los módulos siguientes, listados por su identificador,
también forman parte del núcleo de Node, aunque no se Algoritmos y capacidades de cifrado para otros módulos y
cargan al inicio, pero se exponen a través del API: para el código de programa en general.
• util • tls
Conjunto de utilidades principalmente para saber de si un Comunicaciones cifradas en la capa de transporte con el
objeto es de tipo array, error, fecha, expresión protocolo TLS/SSL, que proporciona infraestructura de clave
regular...También ofrece un mecanismo para extender clases pública/privada.
de JavaScript a través de herencia: • string_decoder
• path • https
Operaciones de manejo y transformación de la ruta de Versión del protocolo HTTP sobre conexiones seguras TLS/SSL.
archivos y directorios, a nivel de nombre, sin consultar el
sistema de ficheros. • url
Métodos para tratar con el protocolo DNS para la resolución Permite la lectura línea por línea de un Stream,
de nombres de dominio de Internet. especialmente indicado para el de la entrada estándar
(STDIN).
• http
• repl
Interfaz de bajo nivel, ya que sólo maneja los Streams y el
paso de mensajes, para la creación y uso de conexiones bajo Bucle de lectura y evaluación de la entrada estándar, para
el protocolo HTTP, tanto del lado del cliente como del incluir en programas que necesiten uno. Es exactamente
servidor. Diseñada para dar soporte hasta a las el mismo módulo que usa Node cuando se inicia sin
características más complejas del protocolo como chunk- argumentos, en el modo REPL comentado con
encoding. anterioridad.
JavaScript en el lado servidor: NodeJS |
• vm • os
Compilación y ejecución bajo demanda de código. Acceso a información relativa al sistema operativo y
recursos hardware sobre los que corre Node.
• child_process
• _debugger
Creación de procesos hijos y comunicación y manejo de
su entrada, salida y error estándar con ellos de una Es el depurador de código que Node tiene incorporado, a
manera no bloqueante. través de la opción debug de la línea de comandos. En
realidad es un cliente que hace uso de las facilidades de
• assert
depuración que el intérprete de Javascript que utiliza
Funciones para la escritura de tests unitarios.
Node ofrece a través de una conexión TCP al puerto 5858.
• tty Por tanto, no es un módulo que se importe a través de
require() sino el modo de ejecución Debug del que se ha
Permite ajustar el modo de trabajo de la entrada estándar si hablado antes.
ésta es un terminal.
• cluster
• zlib
Creación y gestión de grupos de procesos Node trabajando
Compresión/descompresión de Streams con los algoritmos zlib en red para distribuir la carga en arquitecturas con
y gzip. Estos formatos se usan, por ejemplo, en el procesadores multi-core.
protocolo HTTP para comprimir los datos provenientes del
servidor. Es conveniente tener en cuenta que los procesos de
compresión y descompresión pueden ser muy costosos en
términos de memoria y consumo de CPU.
JavaScript en el lado servidor: NodeJS | TELEFÓNICA //
• punycode • _linklist
Implementación del algoritmo Punycode, disponible a partir Implementa una lista doblemente enlazada. Esta estructura
de la versión 0.6.2, para uso del módulo url. El algoritmo de datos se emplea en timers.js, el módulo que provee
Punycode se emplea para convertir de una manera unívoca y funcionalidad de temporización.
reversible cadenas de caracteres Unicode a cadenas de
caracteres ASCII con caracteres compatibles en nombres Su función es encadenar temporizadores que tengan el
de red. mismo tiempo de espera, timeout. Esta es una manera muy
eficiente de manejar enormes cantidades de temporizadores
El propósito es que los nombres de dominio que se activan por inactividad, como los timeouts de los
internacionalizados (en inglés, IDNA), aquellos con caracteres sockets, en los que se reinicia el contador si se detecta
propios de un país, se transformen en cadenas soportadas actividad en él. Cuando esto ocurre, el temporizador, que
globalmente. está situado en la cabeza de la lista, se pone a la cola y se
recalcula el tiempo en que debe expirar el primero.
• domain
• buffer_ieee754
Módulo experimental en fase de desarrollo y, por tanto, no
cargado por defecto para evitar problemas, aunque los Implementa la lectura y escritura de números en formato
autores de la plataforma aseguran un impacto mínimo. La idea de coma flotante según el estándar IEEE754 del IEEE16
detrás de este él es la de agrupar múltiples acciones de que el módulo buffer emplea para las operaciones con
Entrada/Salida diferentes de tal manera que se dotan de un Doubles y Floats.
contexto definido para manejar los errores que puedan
derivarse de ellas. • constants
• freelist • sys
Proporciona una sencilla estructura de pool o conjunto de Es un módulo deprecado, en su lugar se debe emplear el
objetos de la misma clase (de hecho, el constructor de los módulo utils.
mismos es un argumento necesario).