我在fast-csv上有点小问题。这个问题是,当我将headers设置为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 }“时,它确实起作用了,但是头被推送到数据库。
有什么办法解决这个问题吗?
谢谢!
发布于 2018-06-20 03:21:34
我想通了。
var imported_data = new db.Products({
// date: new Date(),
column1: data[0]
});我需要指定标题的名称e.x,而不是数据:
column1: data.names
https://stackoverflow.com/questions/50935282
复制相似问题