我正在研究 Nest js,当我使用 prism 创建 api 时,我的 api 发送错误 500
我试图查看堆栈溢出中的某些内容,但我无法采取任何措施来解决我的错误
// Book Controller
@Post()
async create(@Body() data: BookDTO) {
return await this.bookService.create(data);
}
// Book Service
async create(data: BookDTO) {
return await this.prisma.book.create({ data });
}
这出现在我的日志中
[Nest] 1188 - 06/11/2023, 11:46:09 ERROR [ExceptionsHandler]
Invalid `this.prisma.book.create()` invocation in
C:\Users\gamer\Documents\nest\api\src\modules\book\book.service.ts:10:35
7 constructor(private prisma: PrismaService) {}
8
9 async create(data: BookDTO) {
→ 10 return await this.prisma.book.create({
data: {
+ title: String
}
})
Argument `title` is missing.
PrismaClientValidationError:
Invalid `this.prisma.book.create()` invocation in
C:\Users\gamer\Documents\nest\api\src\modules\book\book.service.ts:10:35
7 constructor(private prisma: PrismaService) {}
8
9 async create(data: BookDTO) {
→ 10 return await this.prisma.book.create({
data: {
+ title: String
}
})
Argument `title` is missing.
我对 JavaScript 有一些了解。
您看到的错误消息表明您传递给图书服务中的 this.prisma.book.create() 方法的数据对象中缺少 title 属性。
这是您当前的代码片段:
async create(data: BookDTO) {
return await this.prisma.book.create({
data: {
// title: String <-- This line is commented out
}
});
}
好像title属性被注释掉了。您需要确保将 title 属性包含在数据对象中,并使用 BookDTO 中的适当值。假设 BookDTO 有一个 title 属性,您应该取消注释该行:
async create(data: BookDTO) {
return await this.prisma.book.create({
data: {
title: data.title, // Include the title property
// Other properties from BookDTO
}
});
}
我想我帮助解决了你的问题