57 lines
1.4 KiB
JavaScript
57 lines
1.4 KiB
JavaScript
import csv from 'csv-parser';
|
|
import formidable from "formidable";
|
|
import fs from "fs";
|
|
import sqlite3 from 'sqlite3';
|
|
|
|
export const config = {
|
|
api: {
|
|
bodyParser: false
|
|
}
|
|
};
|
|
|
|
export default function handler(req,res) {
|
|
|
|
const form = new formidable.IncomingForm();
|
|
form.parse(req, async function (err, fields, files) {
|
|
|
|
// console.log('ppp')
|
|
console.log(files.file.filepath)
|
|
const DB_NAME = 'data/appUser.db';
|
|
const TABLE_NAME = 'user';
|
|
|
|
// Open a connection to the SQLite database
|
|
const db = new sqlite3.Database(DB_NAME);
|
|
|
|
// fs.createReadStream('data/user.csv')
|
|
fs.createReadStream(files.file.filepath)
|
|
.pipe(csv())
|
|
.on('data', (data) => {
|
|
const values = Object.values(data);
|
|
const placeholders = values.map(() => '?').join(',');
|
|
const sql = `INSERT INTO ${TABLE_NAME} (${Object.keys(data).join(',')}) VALUES (${placeholders})`;
|
|
db.run(sql, values, (err) => {
|
|
if (err) {
|
|
console.error(err);
|
|
}
|
|
});
|
|
})
|
|
.on('end', () => {
|
|
console.log(`Data inserted successfully into table ${TABLE_NAME}`);
|
|
|
|
fs.unlinkSync(files.file.filepath);
|
|
db.close();
|
|
});
|
|
|
|
|
|
// console.log(fields)
|
|
// await saveFile(files.file,fields.fName? fields.fName:files.file.originalFilename );
|
|
return res.status(201).send("");
|
|
});
|
|
|
|
|
|
|
|
|
|
res.status(200).json({ msg: 'ok' })
|
|
}
|
|
|