ค้นหาเว็บไซต์

typescript - ทำให้การเรียกข้อมูลของ prisma เป็นแบบไดนามิก (เช่น this.prisma['dataType'].count())


ฉันกำลังพยายามสร้างฟังก์ชันนับที่ฉันสามารถใส่ในวัตถุทั้งหมดของฉัน ในไฟล์ 'core' ของฉัน Prisma เป็นแบบนี้ ดังนั้นฉันจึงสามารถทำสิ่งต่างๆ เช่น this.user.count() หรือ this.company.count()

ฉันได้ลองสร้างฟังก์ชันชื่อว่า count แบบนี้

count(dataType) {
 return this['dataType'].count()
}

เพื่อให้จากทุกที่อื่นในแอป ฉันสามารถเรียก count('dataType') ได้เลย

หน้าที่ของฉันจริง ๆ แล้วซับซ้อนมากกว่านี้พอสมควร - เพราะงานทั้งหมดนี้เพื่อการแทนที่จากบรรทัดหนึ่งเป็นอีกบรรทัดหนึ่งจะไม่สมเหตุสมผล แต่ก็เป็นไอเดียนี้ วิธีที่ฉันลองทั้งหมดไม่สำเร็จ - เป็นไปได้ไหม?

คำตอบ #1

ฉันกำลังใช้ Prisma.ModelName ซึ่งสามารถส่งกลับให้คุณได้ทุกโมเดลที่คุณมีใน prisma ของคุณ จากนั้นคุณก็สามารถอ้างอิงมันแบบนี้

this.prismaService[this.modelName].count()

หรือคุณสามารถส่ง "Prisma.ModelName" เป็นประเภททั่วไปไปยังคลาสแล้วใช้ตัวอย่างข้างต้น