DEV Community

Nahuel Segovia
Nahuel Segovia

Posted on

Manejando peticiones http desde Nodejs sin Express.

Hace unos días tuve la necesidad de comprender como Expressjs maneja las peticiones http. Leyendo la documentación de Nodejs y algunos otros blogs en inglés pude encontrar la forma de hacerlo con dos módulos:

const http = require('http');
const url = require('url');

http.createServer((req, res) => {

    let path = url.parse(req.url, true);
    if(path.pathname === '/api/ver/json'){
        res.setHeader('content-type', 'application/json');
        res.write(JSON.stringify([{
            "Testeando json": "Este es un json",
            "numero" : 245
        }]))
    }

    else if(path.pathname === '/api/crear/usuario'){
        let usuarios = new Array();
        res.setHeader('content-type', 'application/json');
        usuarios.push(JSON.stringify(path.query.nombre));
        console.log(usuarios);
    }

    else if(path.pathname === '/pagina'){
        res.write('<h1>Esta es mi pagina web</h1>');
    }

    res.end();
}).listen(3000, () => {
    console.log('Funcionando en puerto 3000');
})
Enter fullscreen mode Exit fullscreen mode

Creamos nuestro servidor con http e inicializamos el módulo url para poder manipular todos los componentes de nuestra url por separado, pueden encontrar mucha mas información sobre el paquete en la documentación de Node.

let path = url.parse(req.url, true);
Enter fullscreen mode Exit fullscreen mode

Con url.parse le decimos al módulo que queremos manipular las url de las peticiones, luego de esto configuramos unas rutas básicas para filtar las url / y poder devolver y/o recibir la información que queramos.

En el primer caso creamos una api estática que va a mostrar un Json muy simple, cada vez que entren a /api/ver/json esos datos van a estar disponibles.

Ahora se viene lo interesante, cuando enviemos una petición a /api/crear/usuario vamos a obtener los datos del usuario, ya sea por GET o por POST, esto lo podemos hacer porque que al parsear la url accedemos a las queries enviadas por el usuario.

Alt Text

Esto es recomendable solo para experimentar y tratar de entender que hacen los frameworks por atrás.

Espero que sea de su agrado :)

Discussion (0)