[英]How to solve this error (Nest & Prisma): ERROR [ExceptionsHandler] Cannot read properties of undefined (reading 'organ')
[英]Prisma seed - cannot read properties of undefined (reading 'findFirst')
我在使用 prisma seed 時遇到了一個奇怪的問題,這是我以前從未遇到過的,並且很難理解是什么原因造成的。 該應用程序托管在 nextjs 全棧項目中。
我有以下棱鏡初始化腳本:
const prisma = new PrismaClient();
export default prisma;
在我的應用程序 ( next dev
) 中使用 prisma 時,一切正常並且正在執行查詢。
但是,當我嘗試運行種子腳本時,它失敗並顯示TypeError: Cannot read properties of undefined (reading 'findFirst')
這是種子腳本:
async function main() {
const existingUser = await db.user.findFirst();
// ...not relevant
}
main()
.then(async () => await db.$disconnect())
.catch(async e => {
console.error(e);
await db.$disconnect();
process.exit(1);
});
package.json棱鏡部分:
"prisma": {
"seed": "ts-node src/server/db/seed.ts",
"schema": "src/server/db/schema.prisma"
},
tsconfig.json ts 節點部分:
"ts-node": {
"require": ["tsconfig-paths/register"],
"transpileOnly": true,
"compilerOptions": {
"module": "commonjs"
}
},
在種子腳本上打印 prisma 客戶端返回{}
,而不是我在開發模式下打印時可以看到的實際實例。
歡迎任何想法,謝謝!
調試幾個小時后,我終於找到了問題所在。 此代碼片段位於 prisma 運行時配置中:
const dmmfModelKeys = Object.keys(client._baseDmmf.modelMap);
const jsModelKeys = dmmfModelKeys.map(dmmfToJSModelName);
const allKeys = [...new Set(dmmfModelKeys.concat(jsModelKeys))];
我已經看到,雖然前 2 個變量輸出結果,但創建一個new Set
實際上返回一個空數組,而不是實際值。
默認情況下,NextJS 使用es5
作為 tsconfig 中的目標。 然而,ES5 還沒有導致問題的Set
構造。
升級到es2015
解決了這個問題。
我只是期待某種錯誤,而不是無聲的失敗..
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.