module.exports = function (options) {
return new Promise((resolve, reject) => {
const querystring = require('querystring');
const contents = querystring.stringify(options.data);
options = Object.assign({
data: {},
host: 'localhost',
port: 80,
type: 'http',
token: '',
method: 'GET',
path: '/',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': contents.length,
'Authorization': 'Bearer ' + options.token
}
}, options)
if (options.method == "GET") {
options.path = options.path + '?' + contents;
}
let _data = '';
let type;
if (options.type == 'http') {
type = require('http');
} else {
type = require('https');
}
const req = type.request(options, function (res) {
res.setEncoding('utf8');
res.on('data', function (chunk) {
_data += chunk;
});
res.on('end', function () {
// resolve(`${options.path}:\n${_data}`);
resolve(_data);
});
res.on('error', function (e) {
console.dir('problem with request: ' + e.message);
reject(e)
});
});
req.write(contents);
req.end();
})
}
test.js
const createRequest = require('./createRequest');
let token;
createRequest({
type:'http',
host:'localhost',
port: 80,
method: 'POST',
path: '/login',
data: {
username: 'your name',
password: 'your password'
}
})
.then(login_data => {
token = JSON.parse(login_data).token;
return createRequest({
host:'localhost',
port: 80,
method: 'GET',
path: '/your path',
token: token,
data: {
}
})
.then(data => {
console.log(data)
})