![](/img/trans.png)
[英]NestJS Postgres Prisma - Error type 'string' is not assignable to parameter type 'TemplateStringsArray | Sql'
[英]NestJS / Prisma : Type '{ id: string; }' is not assignable to type 'CustomersWhereUniqueInput'
今天我正在使用 NestJS 開發一個新項目,我對 NestJS 很陌生,尤其是 Prisma。 我遵循了有關 prisma 文檔的 本教程,並嘗試將其適應我的項目。
正如錯誤所說,問題發生在findOne function 內部。
我認為這是我的類型。
我已經閱讀了很多東西,但似乎沒有什么與我遇到的錯誤相對應。
這是我的 schema.prisma:
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model Customers {
Id Int @default(autoincrement()) @id
Firstname String
Lastname String
Username String @unique
Password String
accounts Bank_account[]
}
model Admin {
Id Int @default(autoincrement()) @id
Username String
Password String
accounts Bank_account[]
}
model Bank_account {
Id Int @default(autoincrement()) @id
Balance Int
RIB String?
owner Customers @relation(fields: [owner_id], references: [Id])
owner_id Int
admin Admin @relation(fields: [admin_id], references: [Id])
admin_id Int
log_id Int
}
model Logs {
Id Int @default(autoincrement()) @id
Date String?
Type String?
State Boolean?
Bank_account Int
}
我的 customers.services.ts
import { CreateCustomerDto } from './dto/create-customer.dto';
import { UpdateCustomerDto } from './dto/update-customer.dto';
import { Get, Injectable, Param } from '@nestjs/common';
import { PrismaService } from 'src/prisma/prisma.service';
import { isNumberObject } from 'util/types';
import { Customer } from './entities/customer.entity.js';
@Injectable()export class CustomersService { constructor(private prisma: PrismaService) {}
create(createCustomerDto: CreateCustomerDto) {
return 'This action adds a new customer';
}
findAll() {
return this.prisma.customers.findMany();
}
@Get(':id')
findOne(@Param('id') id: string) {
return this.prisma.customers.findUnique({ where: { id }});
}
我的控制器和模塊似乎一切正常。
我已經嘗試重新生成 prisma.schema,我嘗試向我的數據庫添加一些無用的值,但似乎沒有任何改變。
我試圖更改Id
的ìd
但 nest 說Cannot find name 'Id'. Did you mean 'id'?
Cannot find name 'Id'. Did you mean 'id'?
輸入 '{ id: string; }' 不可分配給類型 'CustomersWhereUniqueInput'
查看id
的列類型:
Id Int
當主鍵是Int
類型時,Prisma 期望在您的查詢中使用數字 ID。
因此,在將該字符串傳遞給 Prisma 之前將該字符串轉換為 integer。
@Get(':id')
findOne(@Param('id') id: string) {
return this.prisma.customers.findUnique({ where: { id: parseInt(id) }});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.