У меня есть csv, который я хочу сохранить в моей таблице mySQL. Мой анализатор работает хорошо, и он также сохраняет созданный json Array на моем столе. Моя проблема в том, что он вставляет строку для строки в фоновом режиме и не отвечает на нее.node.js вставить объект массива json в таблицу mysql
Мой код выглядит следующим образом:
var file= './mytable.csv';
connection.connect(function (err) {});
var csv = require('csvtojson');
csv({ delimiter:","})
.fromFile(file)
.on('end_parsed', function(jsonArray){
for(var i = 0; i < jsonArray.length; i++){
var post = jsonArray[i]
conn.query('INSERT INTO mytable SET ?', post, function(err, results) {
if (err) throw err;
console.log(result.insertId);
});
}
res.end("done");
})
.on('done', function(error){
console.log('end')
})
Моя цель состоит в том, что мой апи отправить: его "сделано" с (res.json ("Done")), когда полный запрос делается. Что я должен изменить?
Привет
редактировать: мой CSV является действительно большой, с почти 500к строк!
EDIT:
Я вставил асинхр в мой парсер так:
csv({ delimiter:";"})
.fromFile(file)
.on('end_parsed', function(jsonArray) {
async.forEach(jsonArray, function (jsonArrays, callback) {
conn.query('INSERT INTO mytable SET ?', jsonArrays, callback);
}, function (err) {
if (err) return next(err);
res.json("done");
console.log("done")
});
});
Но он не с Отвечает «Done» (в терминале он написал, но почтальон дать мне только «Могли не получаю ответа ")
Мой новый код с асинхронным делать не Рез. Я только получаю res в моей консоли (см. Edit2) – Ckappo