クエリを投稿するときに、現在のユーザー (id) に割り当てられているデータのみを取得したい。
userId
を含むミドルウェア関数を取得して設定します。
const userId = tokenPayload['claims']['uid'];
ctx.userId = userId;
このようなモデルからデータをフィルタリングuserId
する必要があることに基づいて;
model Address {
id String @id @default(uuid())
name string
...
user User
}
だから私は同等のものを返したいAddresses.filter(address => address.user.id === ctx.userId)
( はミドルウェアに設定されているものと同じですAddresses
)user.id
たとえば、このようなもの(これは作成されたコードであるため、機能しません)
plugins: [nexusPrismaPlugin(
{
computedInputs: {
...
},
computedFilters: {
addresses: ({ ctx }) => ({ where: { user: { id: ctx.userId } } }),
relations: ({ ctx }) => ({ where: { user: { id: ctx.userId } } }),
...
}
}
)],
は、ステートメントcomputedFilters
で設定された要件に一致するように着信クエリをフィルター処理します。where
したがって、このセットではadresses
and / or relations
whereのみを返す必要がありuser.id === ctx.userId
ます。
私が達成したいことが明確であることを願っています。このようにする必要はありません。同じにする必要があるのは、最もパフォーマンスの高い方法での応答だけです。
誰かが助けてくれることを願っています.私はここ数週間、現在の問題に苦しんでいます..