【发布时间】:2016-11-22 01:41:44
【问题描述】:
我正在尝试使用 Express.js 构建一个 Node.js Web 应用程序,它从外部 xml 文件中读取值,并将所有数据值存储在一个数组中。有多个要读取的 xml 文件,因此重复相同的过程。
function loadSoftwareRequestXML(filename){
var xmlparser = new xml2js.Parser();
var software_request = new Array();
var filepath = "/project_requests/" + filename;
fs.readFile(filepath, "utf-8", function(error, values){
xmlparser.parseString(values, function(error, xmlfile){
var xmldata = xmlfile;
date_requested = xmldata.ProjectRequest.DateRequested;
client_org = xmldata.ProjectRequest.ClientOrganization;
proposed_budget = xmldata.ProjectRequest.ProposedBudget;
contact_name = xmldata.ProjectRequest.ContactName;
delivery_date = xmldata.ProjectRequest.DeliveryDate;
requirements = xmldata.ProjectRequest.UserRequirements;
//software_request = [date_requested, client_org, proposed_budget, contact_name, delivery_date, requirements];
software_request.push(date_requested);
software_request.push(client_org);
});
});
console.log(software_request);
return software_request;
}
我遇到的问题是,对于存储检索到的 xml 数据的数组变量“software_request”,它在 xmlparser 函数内部时可以工作。但是当它在 return 语句之前使用 console.log() 跟踪时,它变成了一个空数组。
你会如何解决这个问题?请随意发表评论。任何帮助或建议表示赞赏。
【问题讨论】:
标签: javascript node.js express