我有一个nodejs服务器,托管用于Web应用程序的Web服务。我有一个路由终结点,该终结点落在nodejs函数上,该函数包含async.waterfall一组依赖函数调用。 async.waterfall函数正确执行(console.log显示正确的结果值),但是,我似乎无法将结果作为响应对象返回到Web服务调用。结果没有错误,也没有发送任何结果。 是否可以访问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对象)能够传递回进行调用的有角度的Web应用程序,并在UI中显示结果。