0
내가 6 개 XML 파일을 읽고 특정 검색 항목에 대한 외모와 사용자에게 반환하는 Node.js를 기능이 다시 전화 해주기는 .. 그래서
...
var xmlresult = '<?xml version="1.0" encoding="utf-8"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xml:lang="en_EN" version="2.0"><channel>';
for (var i = 1; i <= 6; i++) {
filename = i + '.xml';
fs.readFile(filename, 'utf8', function(err, data) {
if (err) {
return console.log(err);
}
var doc = libxml.parseXmlString(data);
var xpath = "/rss/channel/item[contains(translate(description, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),'"+ userquery + "')]";
console.log(xpath);
var result = doc.find(xpath);
console.log(result);
result.forEach(function(item) {
xmlresult += item;
// console.log(item.text());
});
});
}
xmlresult += "</channel></rss>";
// console.log(result[0].text());
respond(xmlresult);
function respond(data) {
// response.set('Content-Type','text/xml').send(data);
response.write(data);
response.end();
}
...
문제를 루프에서 XML 파싱 만들기 XML 파싱이 발생하기 전에도 응답이 발생한다는 것입니다. 나는 노드가 비동기 적이기 때문에 그것을 안다. 지금은 루프
if(i==6){
xmlresult += "</channel></rss>";
respond(xmlresult);
}
그것은 아직도 내가 FS 때문에 추측 문제를 해결 실 거예요 위해에 문을 추가하여 문제를 해결하기 위해 노력하고 비동기가는 libxmljs합니다. 나는 그것을 시도했다. 그래서 내가 무엇을해야하니?