响应主体带有正确的对象数组,但对象为空
Response body comes with correct array of objects count but objects are empty
我刚刚启动了一个 Ts.ED 项目,使用 TypeORM 和 Swagger 连接到我的数据库。我有一个 UserController.ts
文件和一个 UserService.ts
文件。在服务文件中,我有一个异步函数,我在其中检索我的 db
中的所有用户
async find(): Promise<Users[]> {
const users = await this.connection.manager.find(Users);
return users
}
然后在我的控制器文件中调用该服务函数 find
,以使其响应显示在 swagger 上 ui
@Get('/')
@Returns(200, Array).Of(Users)
async findAll(): Promise<Users[]> {
const users = await this.usersService.find()
console.log('user',users)
return users
}
问题是 console.log 调用确实打印了它应该打印的所有内容,但是在 swagger ui 上,响应正文只显示
[
{},
{},
{}...
]
虽然对象数正确,但为空。
现在,如果我将控制器功能更改为
@Get('/')
//@Returns(200, Array).Of(Users)
async findAll(): Promise<Users> {
const users = await this.usersService.find()
console.log('user',users)
return users[0]
}
对象以 swagger ui 的所有属性正确显示。
知道为什么数组的对象显示为空吗?
您是否使用装饰器 @Property
正确定义了用户模型?
https://tsed.io/docs/converters.html#usage
好的,我明白了。所以,我误解了 TypeORM 和 Ts.Ed 的部分文档。在 TypeORM 中,数据库模型称为 Entities
。我有一个文件 User.entity.ts
和一个 User.model.ts
文件,它们大部分相同,所以一开始看起来有点不对劲。现在,通过查看@some-user 的回答,我在模型文件中添加了 @Property
装饰器。然后我尝试将它放入实体文件并且数组中的对象不再为空,它们显示了我放置 @Property
装饰器的属性。
在控制器中使用typescript、nestJs或swagger时,也可以使用这个;
@Post()
@ApiBody({ type: [objectItem] })
async create(@Body() body: objectItem[]) {
我刚刚启动了一个 Ts.ED 项目,使用 TypeORM 和 Swagger 连接到我的数据库。我有一个 UserController.ts
文件和一个 UserService.ts
文件。在服务文件中,我有一个异步函数,我在其中检索我的 db
async find(): Promise<Users[]> {
const users = await this.connection.manager.find(Users);
return users
}
然后在我的控制器文件中调用该服务函数 find
,以使其响应显示在 swagger 上 ui
@Get('/')
@Returns(200, Array).Of(Users)
async findAll(): Promise<Users[]> {
const users = await this.usersService.find()
console.log('user',users)
return users
}
问题是 console.log 调用确实打印了它应该打印的所有内容,但是在 swagger ui 上,响应正文只显示
[
{},
{},
{}...
]
虽然对象数正确,但为空。
现在,如果我将控制器功能更改为
@Get('/')
//@Returns(200, Array).Of(Users)
async findAll(): Promise<Users> {
const users = await this.usersService.find()
console.log('user',users)
return users[0]
}
对象以 swagger ui 的所有属性正确显示。
知道为什么数组的对象显示为空吗?
您是否使用装饰器 @Property
正确定义了用户模型?
https://tsed.io/docs/converters.html#usage
好的,我明白了。所以,我误解了 TypeORM 和 Ts.Ed 的部分文档。在 TypeORM 中,数据库模型称为 Entities
。我有一个文件 User.entity.ts
和一个 User.model.ts
文件,它们大部分相同,所以一开始看起来有点不对劲。现在,通过查看@some-user 的回答,我在模型文件中添加了 @Property
装饰器。然后我尝试将它放入实体文件并且数组中的对象不再为空,它们显示了我放置 @Property
装饰器的属性。
在控制器中使用typescript、nestJs或swagger时,也可以使用这个;
@Post()
@ApiBody({ type: [objectItem] })
async create(@Body() body: objectItem[]) {