簡體   English   中英

NestJS / Prisma:鍵入'{ id:string; }' 不可分配給類型 'CustomersWhereUniqueInput'

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM