'use strict';
var request = require('request');
class CNodeJS {
constructor(options) {
this.options = options||{};
options.url = options.url || "http://127.0.0.1:3000/hw/";
}
baseParams(params) {
params = Object.assign({}, params || {});
if(this.options.token){
params.accesstoken = this.options.token;
}
return params;
}
request1(method, path, params) {
return new Promise((resolve, reject) => {
var opts = {
method : method.toUpperCase(),
url : this.options.url + path,
json : true,
};
if(opts.method === 'GET' || opts.method === 'HEAD') {
opts.qs = this.baseParams(params);
}else{
opts.body = this.baseParams(params);
}
request(opts, (err, res, body) => {
if(err){
return reject(err);
}
if(body){
resolve(body);
}else{
reject(new Error("body#error"));
}
});
});
}
request2(method, path, params, callback) {
return new Promise((resolve_, reject_) => {
var opts = {
method : method.toUpperCase(),
url : this.options.url + path,
json : true,
};
if(opts.method === 'GET' || opts.method === 'HEAD') {
opts.qs = this.baseParams(params);
}else{
opts.body = this.baseParams(params);
}
const resolve = res => {
resolve_(res);
callback && callback(null, res);
};
const reject = err => {
reject_(err);
callback && callback(err);
}
request(opts, (err, res, body) => {
if(err){
return reject(err);
}
if(body){
resolve(body);
}else{
reject(new Error("body#error"));
}
});
});
}
request3(method, path, params, callback) {
return request2(method, path, params, callback)
.then(result => Promise.resolve(result.data));
}
}
var client = new CNodeJS({
url: 'http://127.0.0.1:3000/hw/',
});
client.request1('GET', 'abc', {})
.then(result => console.log(result))
.catch(err => console.error(err));
client.request2('GET', 'abc', {}, function callback(err, res) {
if(err){
console.error(err);
}else{
console.log("callback:");
console.log(res);
}
});
client.request3('GET', 'dbc', {})
.then(result => console.log(result))
.catch(err => console.log(err));