bs-school-manager/src/pages/api/addUsersBulk.js

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' })
}