我有一个csv文件,我必须读取,并使用Prisma上传到MySql数据库。然而...写所有的学生到数据库的作品,但整个'如果一个组存在,使用该组,如果它不存在,创建它'部分不工作,因为他不断添加重复的组到数据库中,我已经尝试了这么多的选项,现在似乎没有工作,我越来越绝望...
router.post('/', async (req, res) => {
fs.createReadStream("./Upload/StudentenEnGroepen001.csv")
.pipe(parse({ delimiter: ",", from_line: 2 }))
.on("data", async (row) => {
let group = null;
let inschrijving = row[6];
if (inschrijving === "Student") {
let parts = row[8].split(",");
let groep = parts[1];
let groepNaam = groep.split(" - ")[0].trim();
const student = await prisma.student.create({
data: {
Code: row[0],
Gebruikersnaam: row[1],
Familienaam: row[2],
Voornaam: row[3],
Sorteernaam: row[4],
Email: row[5],
},
})
const groupCount = await prisma.groep.count({
where: {
Naam: { equals: groepNaam },
}
});
if (groupCount > 0) {
const existingGroup = await prisma.groep.findFirst({
where: {
Naam: { equals: groepNaam },
}
});
group = existingGroup;
} else {
group = await prisma.groep.create({
data: {
Naam: groepNaam,
}
});
}
await prisma.groepstudent.create({
data: {
GroepID: group.ID,
StudentID: student.ID,
},
});
}
})
res.json({message: "Studenten en groepen zijn toegevoegd."});
});
我最近的尝试是这样的,但这也不工作。
const groupCount = await prisma.groep.count({
where: {
Naam: { equals: groepNaam },
}
});
if (groupCount > 0) {
const existingGroup = await prisma.groep.findFirst({
where: {
Naam: { equals: groepNaam },
}
});
group = existingGroup;
} else {
group = await prisma.groep.create({
data: {
Naam: groepNaam,
}
});
}
我尝试只使用'findFirst',但也没有工作...
group = await prisma.groep.findFirst({
where: {
Naam: { equals: groepNaam },
}
});
if (group) {
// then use this group
else{
// create group..
...
1条答案
按热度按时间zdwk9cvp1#
你能把你得到的错误包括进去吗?
补充一下Pointy所说的,试着回到你的应用程序实际工作的地方。然后,开始一次添加一些小片段。每次运行你的应用程序,看看它什么时候会突然出现。检查你的调试器,看看它到底是什么时候出现的。这些错误应该会给你指明正确的方向。祝你好运!