Javascript不断创建重复记录

kjthegm6  于 2022-12-17  发布在  Java
关注(0)|答案(1)|浏览(80)

我有一个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..
...
zdwk9cvp

zdwk9cvp1#

你能把你得到的错误包括进去吗?
补充一下Pointy所说的,试着回到你的应用程序实际工作的地方。然后,开始一次添加一些小片段。每次运行你的应用程序,看看它什么时候会突然出现。检查你的调试器,看看它到底是什么时候出现的。这些错误应该会给你指明正确的方向。祝你好运!

相关问题