Node.js – Entendiendo nuestro servidor

En el articulo precedente, creamos un pequeño servidor web,  aunque solo era capaz de contestar siempre con una constante; en este articulo, iremos entrando un poco mas en los recursos que nos proporciona Node.js, y como podemos adaptar ese servidor a nuestras necesidades.

Empecemos, pues, recordando lo que está pasando; en el articulo anterior ya vimos como crear un proyecto, bien, creamos un nuevo proyecto con Nodeclipse

NodeJs. Creando un proyecto

y le damos como nombre «ServidorBasico»

nodeclipse-asignando nombre al proyecto

Si os fijáis, en esta ocasión, no utilizo ningún «template», y como consecuencia, nodeclipse-ficheros generados

no me genera ningún fichero fuente.

Vamos a empezar creando un servidor como el del capitulo anterior, para ello con el botón derecho en el proyecto, creamos una nueva carpeta llamada «app»

Creando un script

Y con el ratón en la carpeta recién creada, podemos utilizar nuevamente el botón derecho de ratón para crear un fichero

2015-12-29_19h35_21

que llamare «server.js»

2015-12-29_19h37_43

Ahora, podemos empezar a crear el servidor, escribiendo el siguiente código:

NodeJs. Servidor1

Es muy semejante a lo que vimos en el artículo anterior, pero….hay cosas nuevas; veamos

En la linea 6, defino la función «inicio» para que contenga todo el código de mi servidor, eso nos permitirá mas adelante, exportarlo; de momento dejo en la linea 17 la llamada a la función, para que se ejecute todo.

En la línea 7 defino una función que espera dos parámetros; esos parámetros me los enviará node y son los objetos Request (req) y Response (res) que me va a permitir interaccionar con el navegador remoto; con»req» tengo acceso a lo que el navegador cliente me envió, y con «res» puedo actuar sobre lo que yo quiero enviar. De momento:

  • en la línea 9 escribo la cabecera con el código de respuesta (2oo es ok), y le indico el «Content-Type» de la respuesta, que en este caso, sera ‘text/html’
  • en la línea 10 escribo en el cuerpo, la string que aparece entre comillas
  • en la línea 11 cierro la respuesta, con lo que se enviará todo al cliente…cuando se llame la función

la línea 8, como sabeis, la utilizo para poder ver en la consola que se ha ejecutado la función

Ahora bien, para que se ejecute esta función, alguien la tiene que llamar.

Si os fijáis en la linea 13, veréis que estoy creando un objeto server, y es aquí, donde indico que cuando este objeto reciba alguna llamada, tiene que procesarla utilizando la función «onRequest», se lo indico entre los paréntesis. y ya de paso, le digo que inicie la escucha en el puerto 3000.

Vamos a lanzar nuestro servidor, para ello, nos situamos sobre el fichero «server.js», y utilizamos el botón derecho de ratón:

lanzar aplicacion node

Seleccionamos «Node Application» y veremos aparecer nuestro primer mensaje, el de la línea 14:

Nodeclipse- consola

Eso significa que la función «inicio()» se ha ejecutado, por lo que podemos pensar que tenemos un servidor escuchando en el puerto 3000, pero fijaros que el mensaje de la línea 8 no ha salido. ¿Porque?, porque como el servidor no ha recibido todavía ninguna petición, no ha llamado a la función «onRequest».

Vamos a solucionar eso;  abrimos un navegador de Internet y tecleamos la dirección de nuestro servidor, que será «localhost:3000», ya que ese es el puerto en donde le hemos pedido que escuche.

Como respuesta, vemos que nos aparece el mensaje que hemos escrito en las lineas 9 y 10,

Llamando al servidor Node

y si vamos a la consola, vemos, también que nos muestra el mensaje escrito en la linea 8:

2015-12-29_20h44_28

con lo que comprobamos que nuestra función «onRequest» ha sido llamada cuando el servidor a recibido una petición

Con lo explicado hasta aquí, aunque seguimos atados a una respuesta única, ya que el servidor siempre contesta loa mismo, ya podemos empezar a intuir que por medio del objeto Request, podremos averiguar que nos están pidiendo, y poder cambiar la respuesta.

En el siguiente articulo conoceremos el funcionamiento de los módulos en Node.js.

Acerca de Miguel Garcia

Programador, Desarrollador web, Formador en distintas areas de informatica y director de equipos multidisciplinares.
Esta entrada fue publicada en Formacion, Javascript, NodeJs y etiquetada . Guarda el enlace permanente.

Una respuesta a Node.js – Entendiendo nuestro servidor

  1. Pingback: Node.js - Nuestro primer proyectoRecursos para formacion

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.