From 49e44d776da67a1ffd9334f2819e9d9e83bab270 Mon Sep 17 00:00:00 2001 From: Arthur Lu Date: Sun, 22 Jan 2023 23:17:38 +0000 Subject: [PATCH] add headers and status to response --- index.js | 44 +++++++++++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/index.js b/index.js index 90526d4..60078dd 100644 --- a/index.js +++ b/index.js @@ -6,6 +6,7 @@ const helmet = require("helmet"); const morgan = require("morgan"); const https = require("https"); var package = require("./package.json"); +const { request } = require("http"); const app = express(); app.use(helmet()); @@ -56,20 +57,37 @@ function requestPVE (path, method, cookies, callback, body = null, auth = true) content.body = prms.toString(); content.headers.CSRFPreventionToken = cookies.CSRFPreventionToken; } - https.request(content, (res) => { - let data = ""; - res.on("data", (d) => { - data += d.toString(); + + const promiseResponse = new Promise((resolve, reject) => { + const fullResponse = { + status: '', + body: '', + headers: '' + }; + + const request = https.request(content); + + request.on('error', reject); + request.on('response', response => { + response.setEncoding('utf8'); + fullResponse.status = response.statusCode; + fullResponse.headers = response.headers; + response.on('data', chunk => { fullResponse.body += chunk; }); + response.on('end', () => { + if(fullResponse.body){ + fullResponse.body = JSON.parse(fullResponse.body); + } + resolve(fullResponse); + }); }); - res.on("end", () => { - try{ - callback(JSON.parse(data)); - } - catch (e) { - callback(e); - } - }); - }).on("error", (e) => {callback(e)}).end(); + + request.end(); + }); + + promiseResponse.then( + response => {callback(response);}, + error => {callback(error);} + ); } app.listen(80, () => {