【问题标题】:next js prisma undefined when in vercel deployment在vercel部署中下一个js prisma未定义
【发布时间】:2021-07-13 02:05:49
【问题描述】:

所以...我在 Next js 中有一个使用 Prisma Client 的 api。 Prisma 是从 prisma.ts 中定义的全局对象导入的

在本地,一切都可以正常构建和运行。我没有收到任何错误,并且定义了 prisma 变量。 但是,当它部署在 Vercel 中时,prisma 是未定义的……我不知道为什么。

如果有人有任何建议,我将不胜感激。

import eBayApi from "@hendt/ebay-api";
import prisma from "../../lib/prisma";

const eBay = new eBayApi({});

export default async (req, res) => {
  // Access the provided 'page' and 'limt' query parameters
  const code = req.query.code; // this is provided from eBay
  console.log(code);

  try {
    //const token = await eBay.OAuth2.getToken(code);
    const token = "bob";

    console.log("Prisma handler instance", prisma);

    const env_variable = await prisma.variable.upsert({
      where: {
        variable: "EBAY_TOKEN",
      },
      update: { value: token },
      create: {
        variable: "EBAY_TOKEN",
        value: token,
      },
    });

    if (env_variable) {
      console.log("New Token Stored in DB");
    } else console.log("Failed to store new Token");

    res.status(200);
    res.writeHead(302, {
      Location: "/orders",
      //add other headers here...
    });
    res.end();
  } catch (e) {
    console.error(e);
    res.status(400).end();
  }

  res.writeHead(302, {
    Location: "/orders",
    //add other headers here...
  });
  res.end();
};

2021-04-18T19:06:18.680Z 869eb228-423a-4d6a-b05a-f95f5e843c88 错误类型错误: 无法读取未定义的属性“更新插入” 在exports.modules.5712.webpack_exports.default (/var/task/nextjs-store/.next/server/pages/api/success.js:55:126) 在 processTicksAndRejections (internal/process/task_queues.js:93:5) 在异步 apiResolver (/var/task/nextjs-store/node_modules/next/dist/next-server/server/api-utils.js:8:1) 在异步 Server.handleApiRequest (/var/task/nextjs-store/node_modules/next/dist/next-server/server/next-server.js:67:462) 在异步 Object.fn (/var/task/nextjs-store/node_modules/next/dist/next-server/server/next-server.js:59:492) 在异步 Router.execute (/var/task/nextjs-store/node_modules/next/dist/next-server/server/router.js:25:67) 在异步 Server.run (/var/task/nextjs-store/node_modules/next/dist/next-server/server/next-server.js:69:1042) 在异步 Server.handleRequest (/var/task/nextjs-store/node_modules/next/dist/next-server/server/next-server.js:34:504) 在异步服务器上。 (/var/task/nextjs-store/___next_launcher.js:26:9)

【问题讨论】:

  • 错误是说“upsert”未定义,而不是 Prisma。特别是“prisma.variable.upsert”。这个名字对吗?
  • 它是“未定义的 upsert”,即无法读取未定义对象 prisma.variable 的有效 upsert 据我所知,upsert 是正确的,并在其他地方使用 prisma.io/docs/reference/api-reference/…

标签: node.js next.js prisma vercel


【解决方案1】:

所以,我玩了一会,认为我找到了问题所在。我的 prisma 表字段是一个 VARCHAR(字符串),但是我无意中尝试使用 JSON 对象存储 upsert。 现在我已更改为 JSON 字段,它正在工作。

所以我想唯一的问题是错误可能没有帮助? 虽然这都是我愚蠢的错。

【讨论】:

    猜你喜欢
    • 2022-07-15
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    • 2022-07-07
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    • 2022-10-07
    相关资源
    最近更新 更多