exec
functionexec()
Generische http request Funktion.
Bei erfolgreiche Antwort (data)
werden die Daten dem callback cb(data) übergeben.
var exec = function(con, task, wrtdata, cb){
var req = http.request(con, function(res) {
res.setEncoding("utf8");
var strdata = "";
res.on("data", function (d) {
strdata = strdata + d
});
res.on("end", function(){
log.info({ok:true}
, "end of request, try to parse data")
var data = JSON.parse(strdata);
if(data.error){
if(task && _.isObject(task.Fallback)){
log.warn({warn: "use fallback"}
,"fallback used for task: "
+ task.TaskName );
cb(task.Fallback);
}else{
log.error({error: data.error}
,"no fallback for task: " + task.TaskName );
cb(data);
}
}else{
if(data.warn){
log.warn({warn: data.warn}
,"warning on receiving data");
}else{
log.info({ok: true}
,"receive data from request");
}
cb(data);
}
});
res.on("error", function(e){
log.error({error:e}
,"response failed")
if(task && _.isObject(task.Fallback)){
log.warn({warn: "use fallback"}
, "fallback used" );
cb(task.Fallback);
}else{
cb({error:e});
}
});
});
req.on("error", function(e) {
log.error({error:e}
,"request failed")
if(task && _.isObject(task.Fallback)){
log.warn({warn: "use fallback"}
,"fallback used" );
cb(task.Fallback);
}else{
cb({error:"receive error on request"});
}
});
if(wrtdata){
log.info({ok: true},
"write data");
req.write(wrtdata);
}
req.end();
log.info({ok: true},
"call request");
};
exports.exec = exec;