2

我有一个项目Node JS,我目前从 API 接收 JSON,并使用该模块Typescript将其转换为具有行数限制的 CSV 格式。json-2-csv我已经读到该papaparse模块对于这些事情非常快,我想知道它是如何工作的,但我不能用它来将 aJSONapi.

这是我打的电话json-2-csv

await this.csvConverter.jsonToCsv(converterUtils, nameFile, this.dir);

这是class处理转换的:

export class csvConverter {

    public async jsonToCsv (csv: any, nameFile: string, dir: string):Promise <number> {

        const max: number = new constUtils().maxRecords;
        const headers = csv.split('\n').slice(0, 1);
        const records = csv.split('\n').slice(0,);
        
        for (let i = 1; i < records.length; i = i + max) {
            let dataOut = headers.concat(records.slice(i, i + max)).join('\n');
            let id = Math.floor(i / max) + 1;
            fs.writeFileSync(`${dir}/${nameFile}.${id}.csv`, dataOut);
        }
        return Promise.resolve(csv);

    };
}

我的问题是我不能对 papaparse 做同样的事情,我查看了文档,但我可以从本地文件转换 JSON,但我无法从 API 获取它。

4

1 回答 1

1

通过评论:

这些是我用来进行调用的变量:

let api = req.query.api;
let url = this.constUt.conf.API_MOCS [`${api}`].url;
let json = await axios.get (url);
Papa.unparse (json);

在这种情况下,站起来什么都不做。

axios.get返回一个响应对象;JSON 数据以data. 您不能只将完整的响应对象传递给 Papa 并期望得到合理的结果。

const url = this.constUt.conf.API_MOCS[String(req.query.api)].url;
const resp = await axios.get(url);
const data = Papa.unparse(resp.data);
console.log(data);
于 2021-06-14T08:29:47.730 回答