SPR*_*1NG 7 javascript backend prisma
我的类别服务中有一个分页,我必须返回 obj 以及类别和数据的总数
但可能有一些参数。例如,我应该返回由特定用户创建的类别:
async findAll(
{ onlyParents }: ParamsCategoryDto,
user: ITokenPayload | undefined,
): Promise<IFilterRes> {
const categories = await this.prisma.category.findMany({
where: {
user_id: user?.id,
},
});
return {
pagination: {
total: this.prisma.category.count({
where: { // <- duplicate
user_id: user?.id,
},
}),
},
data: categories,
};
}
Run Code Online (Sandbox Code Playgroud)
我应该在两个查询中复制where 。这不太好。是否有任何选项可以在一个请求中完成此操作。
PS我可以为where做一些var,但这样我就失去了典型化,我也不喜欢这一点。
Hoà*_*ánh 15
这是我的示例代码,通过单个事务实现它,没有重复的代码并且不会丢失类型自动完成
import { Prisma } from '@prisma/client';
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
const findAll = async (userId: String) => {
const query: Prisma.categoriesFindManyArgs = {
where: {
user_id: userId,
}
};
const [categories, count] = await prisma.$transaction([
prisma.categories.findMany(query),
prisma.categories.count({ where: query.where })
]);
return {
pagination: {
total: count
},
data: categories
};
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9957 次 |
| 最近记录: |