我让middleware.ts
拦截每个请求并对用户进行身份验证,但我想在这些请求中传递来自数据库的数据,其中用户经过身份验证。
我有一个服务器操作,看起来像这样:
export async function getProjectsByUser(): Promise<PrismaProject[]> {
const user = await getUser()
const projects = await prisma.project.findMany({
where: {
user_id: user.id,
},
include: {
Document: true,
Conversation: {
include: {
Message: true,
},
},
},
});
return projects
}
注意函数的第一行抓住了用户。如果可能的话,我宁愿从中间件获取它,但我不确定如何引用它。是否有最佳做法?
1条答案
按热度按时间qyuhtwio1#
我认为您可以通过将中间件附加到
req
对象来访问路由控制器中存储在中间件中的数据。中间件可以向req
对象添加属性/值,并使其可用于路由控制器。然后从
req
对象访问user
数据。