Autor Tema: Hola mundo… ¡en un servidor!  (Leído 665 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado graphixx

  • Whitehat
  • Administrador
  • Usuario Héroe
  • *****
  • Mensajes: 1632
  • Karma: +1984/-0
  • Whitehat
    • Ver Perfil
    • Sistemas y Controles
https://sistemasycontroles.gyazo.com/00717e983c786b3402536970d2af2c73

$ mkdir node
$ cd node/

$ touch app.js
Código: (javascript) [Seleccionar]
1 var http = require('http');
2
3 var server = http.createServer(function (request, response) {
4 response.writeHead(200, {"Content-Type": "text/plain"});
5 response.end("¡Hola Mundo!\n");
6 }).listen(8080);
7
8 console.log('Servidor escuchando por el puerto 8080');

Si ahora lo ejecutas con
1 $ node app.js

Verás que en la consola aparece el mensaje Servidor escuchando por el puerto 8080 que hemos
puesto en la línea 8. Ahora accede a http://localhost:8080 y, si todo ha ido bien, deberías ver una
página que dice ¡Hola Mundo!.

En la primera línea lo que hacemos es require. Quizá puedas deducir lo que hace porque tenemos
un verbo bastante similar en castellano. Esta sentencia es la forma que tiene Node.js de cargar
los módulos. Es similar a include de PHP, #include de C o import en Python. Quizá te estés
preguntando porqué difiere de include si tanto PHP como C usan include. El motivo es que require
es una sentencia común cuando usamos require.js en el navegador para modularizar aplicaciones
JavaScript. Tampoco quiero profundizar mucho en esto porque puede ser un poco complejo.
En este caso, lo que estamos requiriendo es el módulo http que, casualmente, es un paquete del
núcleo de Node.js por lo que no necesita que lo instalemos.

Cita
Ten en cuenta que…
Aunque es buena idea llamar a las variables que reciben los módulos del mismo modo
que se llama el módulo, recuerda que es solo una convención para mantener la cordura.
Siempre puedes poner var ptth = require('http'); si quieres volver loca a la gente
que lea tu código.

Lo siguiente que hacemos es crear un servidor valiéndonos de la función createServer que nos
facilita http. Ésta recibe como parámetro una función, en este caso anónima, con dos parámetros
request, que es la petición, y response que es la respuesta que tenemos que enviar. Esa función será
llamada cada vez que alguien entre en la URL de nuestro servidor, así que tenemos que decirle lo
que tiene que hacer.

En nuestro caso, le indicamos que la petición debe tener un código 200, que es el código HTTP para
decir que la petición es correcta, y que el tipo de contenido que tiene que esperar el navegador es
texto plano. Además, finalizamos la respuesta con el método end, añadiendo el texto que queremos
devolver.

Cita
¿Qué pasaría si no llamáramos a end?
Si no llamáramos al método end de la respuesta, la petición nunca terminará y el
navegador acabará por dar un error porque sigue esperando que le enviemos datos. ¿No
me crees? ¡Pruébalo y verás!

Antes dije: “en este caso anónima”. Ten en cuenta que este código sería totalmente equivalente y
válido:

Función no anónima:
Código: (javascript) [Seleccionar]
1 var http = require('http');
2
3 function gestionaPeticion (request, response) {
4 response.writeHead(200, {"Content-Type": "text/plain"});
5 response.end("¡Hola Mundo!\n");
6 }
7
8 var server = http.createServer(gestionaPeticion).listen(8080);
9
10 console.log('Servidor escuchando por el puerto 8080');

O incluso este:

Función en variable:
Código: (javascript) [Seleccionar]
1 var http = require('http');
2
3 var gestionaPeticion = function (request, response) {
4 response.writeHead(200, {"Content-Type": "text/plain"});
5 response.end("¡Hola Mundo!\n");
6 }
7
8 var server = http.createServer(gestionaPeticion).listen(8080);
9
10 console.log('Servidor escuchando por el puerto 8080');
« Última Modificación: 10 de abril de 2016, 01:27:03 pm por graphixx »
Para tus servicios y comprar productos de Sistemas piensa en contratarnos, usa los botones de WhatsApp ubicados en nuestra pagina principal: www.sistemasycontroles.net

Información Personal sobre Graphixx: