Sequelizeを使用してCSVファイルからNodejsシステムにデータをインポートしていますが、以前の行が挿入されていないかどうかを確認する際に問題があります。挿入ごとにコミットを続ける
これは私がライン何度でもこの
lines.forEach(line => {
let emp = line.employee;
importEmployee(emp).then(employee => {console.dir(employee)});
});
私がいる問題のようにCSVであるとして機能importEmployeeが呼び出されます
exports.insertEmployee = function (employee) {
return new Promise((fulfill, reject) => {
models.Employee.create(employee)
.then(employee => fulfill(employee.dataValues))
.catch(reject);
});
};
exports.importEmployee = function (employee) {
return new Promise((fulfill, reject) => {
models.Employee.findOne({where: {customID: employee.customID}, raw: true}).then(emp => {
if(emp) {
fulfill(emp);
}
else {
exports.insertEmployee(employee).then(fulfill);
}
});
});
};
を使用しているコードです同じcustomIDを持つユーザーが既に挿入されているかどうかをチェックすると、データベースはまだ挿入をコミットしていないので、常にfalseを返し、同じcustomIDを持つ従業員が重複します。
どうすれば修正できますか?私はトランザクションを使用しようとしましたが、おそらく私は間違っています。それは助けにならないからです。
ありがとうございます!