我从将xls导入到nodejs中的joson方法中得到了一个josn数据。 当另一个表需要第一个表ID来创建数据时,我需要同时创建两个表数据。
我尝试了 asyncfunction 和 setTimeout 来创建数据。
它可以正常工作,但不适合 1000条以上记录
const asyncFunction = (item, cb) => {
setTimeout(() => {
const tempDate = item.dateOfBirth.split('/');
const login = {
firstName: item.firstName,
lastName: item.lastName,
email: item.email,
mobile: item.mobile,
gender: item.gender,
dateOfBirth: moment(new Date(`${tempDate[1]}/${tempDate[0]}/${tempDate[2]}`)).toISOString(),
city: item.city,
pincode: item.pincode,
state: item.state,
country: item.country,
roleId: 3,
address: item.address,
branchId: req.body.branchId,
batchId: req.body.batchId,
};
Login.create(login).then((log) => {
const alumni = {
register_number:item.registerNumber ,
about: item.about,
loginId: log.id,
};
Alumni.create(alumni).then(() => {
console.log('sucesss');
cb(item);
}).catch(Sequelize.ValidationError, (errorin) => {
res.status(400).send(errorin);
});
}).catch(Sequelize.ValidationError, (errorin) => {
});
}, 3000);
};
const requests = result.map(item => new Promise((resolve) => {
asyncFunction(item, resolve);
}));
Promise.all(requests).then((data) => {
res.status(200).send(data);
}).catch(Sequelize.ValidationError, (errorin) => {
res.status(400).send(errorin);
});