У меня есть сервер nodejs, на котором размещаются веб-службы для веб-приложения.У меня есть конечная точка маршрутов, которая попадает на функцию nodejs, которая содержит набор зависимых вызовов функций async.waterfall.Функции async.waterfall выполняются правильно (console.log показывает правильные значения результата), ОДНАКО, я не могу вернуть результат в качестве объекта ответа на вызов веб-службы.Результат не содержит ни ошибок, ни результатов.Можно ли получить доступ к результирующим объектам или значениям, которые генерирует async.waterfall?Если да, то как?
Я пытался использовать обратные вызовы на уровне module.exports, в файле nodejs выдается сообщение о том, что обратный вызов не является функцией.
var async = require ('async');
var getheaderinfo = require('../procedures/get_object_header');
var getattributes = require('../procedures/get_object_attrs');
module.exports = function job_detail(req, res) {
var lo_data = {
"type":null,
"code":null,
"id":null,
"title":null,
"description":null,
"attrs":[
{
"id":null,
"name":null,
"value":null
}
],
};
lo_data.type = 4;
lo_data.code = req.params.job_id;
async.waterfall([
// Get job header
function getheader(callback) {
getheaderinfo(lo_data, function(cb_job_header){
lo_data.id = cb_job_header.id;
lo_data.title = cb_job_header.title;
lo_data.description = cb_job_header.description;
return callback(null, cb_job_header.id);
});
}, // Get job detailed attribution
function getattrs(lookupid, callback) {
getattributes(lo_data, function(cb_job_attrs){
lo_data.attrs[0].id = cb_job_attrs[0].id;
lo_data.attrs[0].name = cb_job_attrs[0].name;
lo_data.attrs[0].value = cb_job_attrs[0].value;
return callback(null, lo_data);
})
}
],
function(err, result) {
if (result) {
res.end(JSON.stringify(result));
}
}
);
}
Я ожидаю объект-результат (или объект lo_data), чтобы его можно было передать обратно в угловое веб-приложение, которое совершило вызов, и отобразить результаты в пользовательском интерфейсе.