🦔
【Convex】NextJs14 と Convex【#13 Convex Query】
【#13 Convex Query】
YouTube: https://youtu.be/H-k5ujPaKNo
今回は前回スキーマで定義したカードの一覧を取得する関数を作成します。
convex/schema.ts
import { v } from "convex/values";
import { defineSchema, defineTable } from "convex/server";
export default defineSchema({
cards: defineTable({
title: v.string(),
orgId: v.string(),
authorId: v.string(),
cardType: v.string(),
imageUrl: v.string(),
}).index("by_org", ["orgId"]),
});
カードの一覧取得用に「convex」フォルダ内に
「cards.ts」ファイルを作成します。
convex/cards.ts
import { v } from "convex/values";
import { query } from "./_generated/server";
export const get = query({
args: {
orgId: v.string(),
},
handler: async (ctx, args) => {
const identity = await ctx.auth.getUserIdentity();
if (!identity) {
throw new Error("Unauthorized");
}
const cards = await ctx.db
.query("cards")
.withIndex("by_org", (q) => q.eq("orgId", args.orgId))
.order("desc")
.collect();
return cards;
},
});
作成した関数の使用方法
NextJSのサーバコンポーネントでの使用例
Discussion