如何解决将CSV转换为JSON并使用Sequelize将其导入数据库
我想将CSV文件转换为JSON,我做到了,它可以工作并生成JSON文件,但是当我尝试使用Sequelize将JSON文件导入到我的数据库时,不能,我是新手,最后,如果有人可以解决这个问题,这对我来说是一种乐趣
我的代码
const sequelize = require("./Database/db");
const Auftrag = require("./models/Fe_Auftrage");
const app = express();
const faker = require("faker");
const apiAuftrag = require("./api/auftrag");
const times = require("lodash.times");
const random = require("lodash.random");
app.use(express.json());
app.use(express.static("app/public"));
const fs = require("fs");
apiAuftrag(app,sequelize);
// (async () => {
// await sequelize.sync({
// force: true,// });
// })();
app.get("/",(req,res) => {
res.send("Hello World!");
});
// csv to json
const csvFilePath = "./auftrags.csv";
const createReadStream = require("fs").createReadStream;
const createWriteStream = require("fs").createWriteStream;
const csvjson = require("csvjson");
const toObject = csvjson.stream.toObject();
const stringify = csvjson.stream.stringify();
createReadStream(csvFilePath,"utf-8")
.pipe(toObject)
.pipe(stringify)
.pipe(createWriteStream("./data.json"));
// json to database
let data = fs.readFileSync("./data.json");
let input = JSON.parse(data);
for (let x of input) {
Auftrag.sync({ force: true }).then(function () {
return Auftrag.create({
BarCode: Barcode,});
});
}
// sequelize.sync().then(() => {
// Auftrag.bulkCreate(
// times(10,() => ({
// BarCode: faker.address.zipCode(),// }))
// );
// });
var port = process.env.port || 3000;
app.listen(port,() => console.log(`App listening on port ${port}`));
这是我要编写JSON文件的模型
const Sequelize = require("sequelize");
const sequelize = require("../Database/db");
const auftrag = require("../api/auftrag");
const position = require("./position");
const Auftrag = sequelize.define("Auftrag",{
ManualFactoringID: {
type: Sequelize.INTEGER,autoIncrement: true,allowNull: false,primaryKey: true,},BarCode: { type: Sequelize.STRING },// Timestamps
createdAt: Sequelize.DATE,updatedAt: Sequelize.DATE,});
Auftrag.hasMany(position);
module.exports = Auftrag;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。