index.js
var server = require ("./server");
var router = require ("./routers");
var requestHandlers = require ("./requestHandlers");
var handle ={}
handle ["/"] = requestHandlers.raiz;
handle ["/iniciar"] = requestHandlers.iniciar;
handle ["/busca"] = requestHandlers.busca;
handle ["/subir"] = requestHandlers.subir;
server.inicio (router.route,handle);
****************************************************************************************
server.js
var http=require ("http");
var url =require ("url");
function inicio (route,handle){
function onRequest (request, response){
var pathname =url.parse(request.url).pathname;
console.log("Peticion para "+pathname+ " recibida.");
route (handle,pathname,response);
}
http.createServer(onRequest).listen (8888);
console.log ("Server Running");
}
exports.inicio=inicio;
****************************************************************************************
routers.js
function route (handle,pathname,response){
console.log ("Rutear peticion a "+pathname );
if (typeof handle[pathname] === 'function'){
//return handle [pathname]();
handle [pathname](response);
} else{
console.log ("No hay manipulador para "+pathname);
response.writeHead (404,{"Content-Type":"text/html"});
response.write("404 no encontado");
response.end()
//return "404 no encontrado";
}
}
exports.route =route;
****************************************************************************************
requestHandlers.js
var exec =require ("child_process").exec;
function raiz(response){
console.log ("Manip. raiz / ");
html (response,"raiz");
//return "raiz /";
}
function iniciar (response){
console.log ("Manip. iniciar ");
exec ("ls -lah", function (error, stdout,stderr) {
html (response,stdout);
}); ;
}
function busca (response){
console.log ("Manip.busca");
exec ("find /",
{timeout:10000,maxBuffer:20000*1024},
function (error,stdout, stderr){
html(response,stdout);
});
}
function subir (response){
console.log ("Manip. subir ");
html (response,"sube");
//return "Hola subir";
}
//Funciones auxiliares
function html(response,msg){
response.writeHead ( 200 , {"Content-Type": "text/html"});
response.write (msg);
response.end();
}
exports.raiz=raiz;
exports.iniciar =iniciar;
exports.busca=busca;
exports.subir =subir;