🥇 JSON.

Aun tenemos un problema, tanto titulo como parrafo, son valores que provienen de variables, esto quiere decir que si deseamos modificar el título o el parrafo tendriamos que modificar el código.

🍿 Almacenando valores en JSON.

  1. Vamos a crear un nuevo archivo comodines.json, en el cual vamos a definir los valores de los comodines titulo y parrafo.

    {
        "comodines" : [
            { "nombre" : "%titulo%", "valor" : "Este es el titulo de la pagina." },
            { "nombre" : "%parrafo%", "valor" : "Este es el parrafo de la pagina." }
        ]
    }
    

    Como podemos ver, nuestro objeto tiene un arreglo de comodines con el nombre del comodín y el valor de este.

  2. Vamos a leer entonces este archivo desde nuestra aplicación y accesar directamente los comodines.

    var comodines = JSON.parse(fs.readFileSync(__dirname + '/comodines.json')).comodines;
    
  3. Recorremos el arreglo de comodines, y vamos reemplazando uno por uno en el template.

    comodines.forEach(function(comodin){
        html = html.replace(comodin.nombre,comodin.valor);
    });
    
  4. Finalmente vamos a imprimir nuevamente nuestra salida html.

    respuesta.end(html);
    

Al final nuestro código lucirá así…

// llamamos a la libreria http
var http = require('http');

// llamamos a la libreria fs
var fs = require('fs');

// creamos nuestro server
var miServidor = http.createServer((peticion,respuesta) => {

    respuesta.writeHead(200,{'Content-Type' : 'text/html'});

    var html = fs.readFileSync(__dirname + '/hola_mundo.tpl').toString();

    var comodines = JSON.parse(fs.readFileSync(__dirname + '/comodines.json')).comodines;

    comodines.forEach(function(comodin){
        html = html.replace(comodin.nombre,comodin.valor);
    });

    respuesta.end(html);

});

// inicializar el servidor
miServidor.listen(1111,'127.0.0.1');

Como vemos, hemos separado los datos de nuestra aplicación JSON de su presentación Template, en aplicaciones reales los datos y la presentación siempre se mantienen separados, para los datos se suelen utilizar bases de datos o consumir APIs, mientras que para la presentación motores de plantillas y frameworks escritos en Javascript.

Uso de templates. Enrutamiento.
comments powered by Disqus