我有一个简单的节点应用程序,我使用xml2js库将xml转换为JSON数据,并且在访问localhost:8081时成功转换了1个data.xml
文件,效果很好。
我的目标是现在读取多个文件(data.xml
和data2.xml
),并在访问端点localhost:8081
时作为1 json响应返回。我的代码当前仍只返回json响应data.xml
中的第一个文件,似乎没有做data2.xml
。这是我的应用程序结构和代码。数据是一个包含2个简单xml文件且内容最少的目录。预先感谢:
|- data |
| |-data.xml
| |-data2.xml
|
|- app.js
app.js:
const parseStringPromise = require('xml2js').parseStringPromise;
var http = require("http");
http.createServer(function (request, res) {
let fs = require('fs');
let data = '';
fs.readdir('data', function (err, files) {
console.log(files)
for (let i = 0; i < files.length; i++) {
let readStream = fs.createReadStream(`data/${files[i]}`, 'utf8');
readStream.on('data', function (chunk) {
console.log(`chunk for ===${files[i]}`, chunk)
// data is streamed in chunks, not really required for a file of this size.
data += chunk;
}).on('end', function () {
// buffer is parsed to json
parseStringPromise(data /*, options */).then(function (result) {
res.end(JSON.stringify(result));
})
.catch(function (err) {
// Failed
})
})
}
})
}).listen(8081);
// Console will print the message
console.log('Server running at http://127.0.0.1:8081/');