Estoy tratando de hacer un contenedor muy simple alrededor de los controladores de servidor nodejs como (req:IncomingMessage, res:ServerResponse) =>... para usarlos en un contexto de script cgi.
En un script cgi, el cuerpo de la solicitud viene dado por stdin. Pensé que esto funcionaría:
#!/bin/node // DOESN'T WORK const {IncomingMessage} = require('http') const req = new IncomingMessage(process.stdin) var body = "" req.on("data", function(chunk) { body+=chunk}) req.on("close", function() { console.log(body)}) Pero nada se repite desde stdin. Sin embargo, adjuntar los controladores de eventos a req.socket en lugar de solo a req funciona:
#!/bin/node // DOES WORK const {IncomingMessage} = require('http') const req = new IncomingMessage(process.stdin) var body = "" req.socket.on("data", function(chunk) { body+=chunk}) req.socket.on("close", function() { console.log(body)}) ¿Qué estoy haciendo mal? de acuerdo con los documentos IncomingMessage toma un socket como su parámetro y stdin es un socket. ¿Cómo obtengo los controladores de eventos en el objeto de http.server principal para leer desde stdin, como sería el caso de un objeto IncomingMessage creado por un req ? Quiero que este despachador cgi sea compatible con los controladores que esperan poder llamar a req.on('data'...) .