审查生成的订单图

来自 GraphQL
Node 24 高级 6分钟 找出 4处问题

在公开租户订单前,审查这份生成的 resolver 映射。

只返回当前查看者有权访问且大小受限的订单页;按请求批量解析客户并保持键顺序,同时安全地取消已授权订单。

JavaScript
const customerLoader = new DataLoader(async (ids) => {
  return db.customers.findMany({ ids });
});

const resolvers = {
  Query: {
    orders: async (_root, { userId, first = 10000 }) => {
      const rows = await db.orders.findMany({ ownerId: userId, limit: first });
      return Promise.all(rows.map(async (order) => ({
        ...order,
        customer: await db.customers.findById(order.customerId),
      })));
    },
  },
  Order: {
    customer: (order) => customerLoader.load(order.customerId),
  },
  Mutation: {
    cancelOrder: async (_root, { id }) => {
      await db.orders.update(id, { status: "CANCELLED" });
      return true;
    },
  },
};

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误