UNPKG

cranker-router

Version:
59 lines (50 loc) 1.95 kB
// A simple promise based HTTP client for testing -*- js-indent-level: 4 -*- const http = require("http"); const querystring = require("querystring"); exports.request = function(routerPort, formData) { return new Promise((resolve, reject) => { const fd = formData !== undefined ? formData : {}; const encoded = querystring.stringify(fd); const headers = formData === undefined ? {} : { "content-type": "application/x-www-form-urlencoded", "content-length": Buffer.byteLength(encoded) }; const options = { method: formData !== undefined ? "POST" : "GET", host: "localhost", port: routerPort, path: "/test", headers: headers }; console.log(`>test http client starting ${options.method} ${options.host}:${options.port} ${options.path}`); const req = http.request(options, function (response) { console.log( ">test http client response received", options.method + " Request response headers", response.statusCode, response.statusMessage, response.headers, "request headers", headers ); const resultObject = { statusCode: response.statusCode, statusMessage: response.statusMessage, headers: response.headers, chunkArray: [] }; response.on("data", (d) => { const string = new String(d); resultObject.chunkArray.push(string); }); response.on("end", function () { resolve(resultObject); }); }); if (formData !== undefined) { console.log(">test http client going to write", encoded); req.write(encoded); } req.end(); }); } // End