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');
})
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);
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.
Esto es recomendable solo para experimentar y tratar de entender que hacen los frameworks por atrás.
Espero que sea de su agrado :)
Top comments (0)