节点 js 在 prisma 上搜索不区分大小写的字符串

Node js search on prisma for string with case insensitivity

我想查找具有特定电子邮件的用户,无论数据库或请求正文中的电子邮件是否区分大小写。使用以下任何一种方法都会呈现未定义的函数错误

    const user = await prisma.User.findUnique({
        where: {
            email: {
                insensitive: {
                    equals: req.body.email,
                },
            }
        }
    })

    const user = await prisma.User.findUnique({
        where: {
            email: {
                insensitiveEquals: req.body.email
            }
        }
    })

    const user = await prisma.User.findUnique({
        where: {
            email: req.body.email,
            mode: 'insensitive'
        }
    })

未定义函数错误意味着 user 模型上没有可用的函数 findUnique。 如果 PrismaClient 不是最新的模式文件,就会发生这种情况。 您需要执行 npx prisma generate 来生成最新的 PrismaClient.

在生成 PrismaClient 后,以下查询可用于在 insensitive 模式下使用电子邮件查找用户。

  const user = await prisma.user.findMany({
    where: {
      email: {
        equals: 'test@test.com',
        mode: 'insensitive',
      },
    },
  });

case insensitive filtering 的这篇参考资料也会有所帮助。