我正在按照“将 Clerk 身份验证和 Stripe 付款添加到您的 NextJS tRPC 应用程序”教程进行操作,该教程使用 T3 应用程序 + Prisma + Clerk。我已经使用 Drizzle ORM 启动了我的 T3 应用程序。我……
我正在按照 "Add Clerk Authentication & Stripe Payments to your NextJS tRPC Application" 教程进行操作,该教程使用 T3 应用程序 + Prisma + Clerk。
我已经使用 Drizzle ORM 启动了我的 T3 应用程序。
我需要帮助将这个用 Prisma-speak 编写的特定切换函数转换为 Drizzle-speak 编写的!
const { id } = evt.data;
const eventType = evt.type;
switch (eventType) {
case "user.created": {
const count = await db.account.count({
where: {
userId: id!,
},
});
if (!count) {
await db.account.create({
data: {
userId: id!,
},
});
}
}
default: {
console.error(`The event type: ${eventType} is not configured`);
}
}
我尝试过这个但出现错误:
//Check to see if userID already exists
case "user.created": {
// https://orm.drizzle.team/learn/guides/count-rows
const [{count = 0}] = await db.select({value: count(users.id)}).from(users).where(eq(users.id, id))
//if count is zero then create account by just passing userID
if(!count){
// https://orm.drizzle.team/docs/insert
await db.insert(users).values({name: id})
}
}
default: {
console.error(`The event type: ${eventType} is not configured`);
}
}
使用 Drizzle ORM
import { db } from './your-drizzle-setup'; // Import Drizzle DB instance
const { id } = evt.data;
const eventType = evt.type;
switch (eventType) {
case "user.created": {
const count = await db.account
.where({ userId: id! })
.count(); // Drizzle syntax for counting rows
if (count === 0) {
await db.account.create({
data: {
userId: id!,
},
});
}
break; // Ensure you break out of the case
}
default: {
console.error(`The event type: ${eventType} is not configured`);
break; // Ensure you break out of the default case
}
}