Estoy creando un 'mini framework' a modo de practica en NodeJs de un servidor HTTP (mas o menos algo entre connect y express).
Tengo la función http.createServer() la cual recibe la peticion y respuesta (request y response) sabemos que request es de la clase http.IncomingMessage y response corresponde a http.ServerResponse. Lo que sucede es que quiero añadirle nuevos metodos a el objeto response, cree un prototipo de la siguientr manera:
Código:
var res = { __proto__: http.ServerResponse.prototype }
res.enviar = (msg) => {... // nuevo metodo enviar
this.statusCode = 200;
this.setHeader("Content-Type","text/html");
this.write(msg);
this.end();
}
Lo que quiero es que el objeto que recibe como parametro mi funcion CreateServer() adquiera los métodos de mi nuevo objeto.
Lo implementé de la siguiente manera pero cuando en el método enviar uso this.end() o res.end() me lanza un error de undefined relacionado con el metodo connection. Lo he cambiado por res en vez the this pero tambien me lanza el err (error asignando valor content_type a undefined):
Código:
http.createServer(request, response){
response.__proto__ = res; // o res.prototype
response.enviar("foo"); // aqui el error
}