GUIALAB 8 Node.v2020

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 3

LAB-273

UNIVERSIDAD MAYOR DE SAN ANDRÉS


VERSIÓN: 01 PÁGINA: 1 de 3
CARRERA DE INFORMÁTICA FECHA: 10/2020

GUÍA PARA PRÁCTICAS DE LABORATORIO DE


VIGENCIA: 2020
TELEMATICA (LAB273)

LABORATORIO Nº 8
APLICACIONES WEB CON NODE JS

1. OBJETIVOS DE APRENDIZAJE
 Utilizar de forma efectiva las APIs para sockets provistas por Node.Js para el desarrollo de
aplicaciones de red usando la abstracción de sockets TCP y UDP.
 Aplicar las capacidades que proporciona los módulos http y fs de Node.Js para la
construcción aplicaciones web
2. HERRAMIENTAS Y MATERIALES REQUERIDOS
 Equipo requerido. Un PC Linux con conexión a internet
 Software. Node.Js y un IDE de su preferencia
3. INTRODUCCION
Node.js, es un proyecto creado por Ryan Dahl orientado a la creación de aplicaciones para Internet.
El lenguaje de programación que se usa es Javascript. Podemos decir que Node.js es una forma de
ejecutar JavaScript fuera del navegador web, permitiendo que este lenguaje se aplique en muchos
más contextos, en particular en servidores web.
JavaScript se caracteriza principalmente por ser un lenguaje interpretado y orientado a objetos de
forma parcial ya que no soporta el polimorfismo. Sin embargo, Javascript fundamentalmente se
caracteriza por ajustarse al modelo de la programación funcional, paradigma donde flujo del
programa no es secuencial, sino que depende de los eventos que se producen durante la ejecución.
Por esta razón los distintos módulos de Node están constituidos por objetos que encapsulan métodos
asociados a ciertos eventos que permiten implementar un determinado comportamiento.
El sitio oficial (http://www.nodejs.org) define a Node como una plataforma construida sobre el entorno
de ejecución Javascript de Chrome para desarrollar fácilmente aplicaciones de red rápidas y
escalables. Node usa un modelo de E/S no bloqueante dirigido por eventos que lo hace ligero y
eficiente, perfecto para aplicaciones en tiempo real que se ejecuta a través de dispositivos
distribuidos.
Node dispone de una serie de módulos que se pueden usar en las aplicaciones, para utilizar estas
bibliotecas se debe indicar mediante la función require() haciendo referencias al módulo que se
desea incluir en una aplicación.
Entre los módulos más importantes para nuestros propósitos se hallan:
- net: Permite la creación y manejo asíncrono de servidores y clientes, que implementan la
interfaz Stream sobre el protocolo de transporte TCP.
- dgram: Usado para la creación y manejo asíncrono de datagramas sobre el protocolo
transporte UDP.
- http: Provee mecanismos para la creación y uso de conexiones bajo el protocolo HTTP,
tanto del lado del cliente como del servidor.
- fs: Proporciona funciones para trabajar con el sistema de archivos, sus métodos permiten
trabajar de forma asíncrona o síncrona.

ELABORADO POR: ROBERTO VARGAS BLACUTT CARGO: DOCENTE LAB-273 FECHA: 01/10/2020
LAB-273
UNIVERSIDAD MAYOR DE SAN ANDRÉS
VERSIÓN: 01 PÁGINA: 2 de 3
CARRERA DE INFORMÁTICA FECHA: 10/2020

GUÍA PARA PRÁCTICAS DE LABORATORIO DE


VIGENCIA: 2020
TELEMATICA (LAB273)

Particularmente recomendamos el estudio de estas clases ya que permiten desarrollar aplicaciones


que corran en Internet.

Referencias Bibliográficas. Disponibles en la plataforma virtual del curso


 Node.js Tutorial
 The Node Beginner Book - A comprehensive Node.js tutorial, Manuel Kiessling
 Node.js API DOCs
 JavaScript Pocket Reference, David Flanagan

4. PROCEDIMIENTO
Usando el modulo net para una comunicación usando TCP
A continuación, ilustraremos el uso del módulo net para un simple ejemplo de una comunicación
usando sockets con el protocolo TCP.
Programa Cliente
var net = require('net');
var client = net.connect({port: 8080}, function() {
console.log('conectado al servidor!');
});
client.on('data', function(data) {
console.log(data.toString());
client.end();
});
client.on('end', function() {
console.log('desconectado del servidor!');
});

Programa Servidor
var net = require('net');
var server = net.createServer(function(connection) {
console.log('cliente connectado');
connection.write('Hola Mundo!\r\n');
connection.on('end', function() {
console.log('cliente desconectado');
});

});
server.listen(8080, function() {
console.log('servidor esta escuchando');
});

Usando el modulo net para una comunicación usando UDP


El modulo net de Node.js proporciona también una comunicación sin conexión. A continuación,
mostramos un simple ejemplo que ilustre una comunicación entre un programa cliente y un programa
servidor usando UDP.
ELABORADO POR: ROBERTO VARGAS BLACUTT CARGO: DOCENTE LAB-273 FECHA: 01/10/2020
LAB-273
UNIVERSIDAD MAYOR DE SAN ANDRÉS
VERSIÓN: 01 PÁGINA: 3 de 3
CARRERA DE INFORMÁTICA FECHA: 10/2020

GUÍA PARA PRÁCTICAS DE LABORATORIO DE


VIGENCIA: 2020
TELEMATICA (LAB273)

Programa Cliente
var dgram = require('dgram');
var data = new Buffer("Mensaje al servidor");
var client = dgram.createSocket("udp4");

client.send(data, 0, data.length, 8887, "localhost", function (err,


bytes) {
if (err)
console.error('error: ' + err);
else
console.log('OK');
client.close();
});

Programa Servidor
var dgram = require('dgram');
var server = dgram.createSocket("udp4");

server.on ("message", function(msg) {


console.log("Se recibió: " + msg );
});
server.bind(8887);

Nótese que la cantidad de código es mucho menor que lo requerido en Java para realizar
prácticamente lo mismo. Finalmente ejecute ambos programas en consolas diferentes y verifique la
comunicación.
Nota. - Para correr un programa Node.js utilice la siguiente línea de comando: nodejs servidor.js

5. EJERCICIOS
1. Desarrolle un simple servidor HTTP que atienda peticiones en el puerto 5000, por cada solicitud
recibida, el servidor deberá devolver una cadena de texto que incluya el nombre completo del
alumno y su carnet de identidad. Para este ejercicio deberá usar el módulo ‘http’ de Node.
Verifique la correcta operación del servidor usando un navegador.

2. Desarrolle en Node.JS un cliente HTTP que se conecte a un servidor Web y envié una petición
GET. Su programa deberá desplegar la respuesta completa del servidor (encabezados HTTP y
contenido página web). Para este ejercicio deberá usar el módulo ‘http’ de Node. Pruebe con
Apache

Preparación para laboratorio.


Revisar los módulos url, fs y querystring de Node.js para la construcción de aplicaciones web.

ELABORADO POR: ROBERTO VARGAS BLACUTT CARGO: DOCENTE LAB-273 FECHA: 01/10/2020

También podría gustarte