我有一个csv链接。所以我想要的是当我的页面第一次加载时,我想从链接下载csv文件并将其存储在公共文件夹中。这样我就可以从那里获取它,并通过将它转换为JSON来映射它的数据。
首先,您需要一个express服务器。之后,在后端创建一个文件csv.js(可能在"utils"文件夹中(。里面写这个代码:
const {
readJSON,
writeJSON,
writeFile,
readFile,
remove,
createReadStream,
createWriteStream,
} = fs;
import fs from "fs-extra";
import { fileURLToPath } from "url";
import { dirname, join } from "path";
const authorsJSONPath = join(
dirname(fileURLToPath(import.meta.url)),
"../authors.json"
);
export const getAuthorsReadableStream = () => createReadStream(authorsJSONPath);
然后你当然需要服务器和路由。在服务器中导入路由器并指定终结点。如果你知道如何做到这一点,创建这个路线并导入你需要的东西。您将需要包json2csv-
从";json2csv";;
// Get CSV files
router.get("/download/csv", async (req, res, next) => {
try {
res.setHeader("Content-Disposition", `attachment; filename=Authors.csv`);
const source = getAuthorsReadableStream();
const transform = new json2csv.Transform({
fields: ["id", "name", "surname", "email", "dateOfBirth", "avatar"],
});
const destination = res;
pipeline(source, transform, destination, (err) => {
if (err) next(err);
});
} catch (error) {
next(error);
}
});
如果您只想通过它映射数据,而不是由用户下载,请创建一个JSON文件并通过它进行映射。
如需任何进一步的支持或问题,请访问此处。