读取多个xml文件并发送JSON响应

时间:2019-09-09 00:23:18

标签: node.js json xml rest api

我有一个简单的节点应用程序,我使用xml2js库将xml转换为JSON数据,并且在访问localhost:8081时成功转换了1个data.xml文件,效果很好。

我的目标是现在读取多个文件(data.xmldata2.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/');

0 个答案:

没有答案