当标头为 true 时,fast-csv 返回未定义的数据



我在快速csv上遇到了一个小问题。问题是,当我将标头设置为 true 时,我得到"未定义"的数据(只有空数据被推送到数据库(。

const db = require("../models");
const fs = require("fs");
const csv = require("fast-csv");
const csvfile = "./public/csv/vendor_example.csv";
const stream = fs.createReadStream(csvfile);
router.get("/import_data", (req, res, next) => {
// csv.fromStream(stream, { headers: true });
var csvStream = csv(stream, { headers: true })
.on("data", function(data) {
// products.push(data);
var imported_data = new db.Products({
// date: new Date(),
column1: data[0]
});
imported_data.save(error => {
console.log(skus_data);
if (error) {
throw error;
}
});
})
.on("end", function() {
console.log("ended");
});
stream.pipe(csvStream);
// res.json({ success: "Data Imported", status: 200 });
res.json({
success: "Data imported with no errors",
status: 200
});
});

但是,当我删除"stream, { headers: true }"时,它确实有效,但标头被推送到数据库。

有什么想法可以解决这个问题吗?

谢谢!

想通了。

var imported_data = new db.Products({
// date: new Date(),
column1: data[0]
});

我需要指定标头的名称,而不是 data[0],例如:

列 1:数据名称

最新更新