码迷,mamicode.com
首页 > Web开发 > 详细

vulcanjs schemas&& collections

时间:2018-09-03 02:44:49      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:order   tab   create   自动生成   inf   nal   查询   custom   guests   

一张参考图

技术分享图片

说明

从上图我们可以方便的看出schmea 能做的事情

  • Generate a GraphQL equivalent of your schema to control your GraphQL API.(生成 graphql api)
  • Control permissions for accessing and modifying data.(访问控制)
  • Generate forms on the client.(client 以及表单生成)
  • Validate form contents on submission.(数据校验)
  • Auto-generate paginated, searchable datatables.(自动生成分页,查询)
  • Auto-generate smart cards for displaying individual documents.(智能卡生成)
  • Add callbacks on document insert or edit.(数据添加,编辑时候的回掉)

参考例子

  • schema

    类似graphql-yogo 以及graphql-js 的schema 定义

const schema = {
  // default properties

  _id: {
    type: String,
    optional: true,
    canRead: ["guests"]
  },
  createdAt: {
    type: Date,
    optional: true,
    canRead: ["guests"],
    onCreate: ({ newDocument, currentUser }) => {
      return new Date();
    }
  },
  userId: {
    type: String,
    optional: true,
    canRead: ["guests"],
    resolveAs: {
      fieldName: "user",
      type: "User",
      resolver: (movie, args, context) => {
        return context.Users.findOne(
          { _id: movie.userId },
          {
            fields: context.Users.getViewableFields(
              context.currentUser,
              context.Users
            )
          }
        );
      },
      addOriginalField: true
    }
  },

  // custom properties

  name: {
    label: "Name",
    type: String,
    optional: true,
    canRead: ["guests"],
    canCreate: ["members"],
    canUpdate: ["members"]
  },
  year: {
    label: "Year",
    type: String,
    optional: true,
    canRead: ["guests"],
    canCreate: ["members"],
    canUpdate: ["members"]
  },
  review: {
    label: "Review",
    type: String,
    optional: true,
    control: "textarea",
    canRead: ["guests"],
    canCreate: ["members"],
    canUpdate: ["members"]
  }
};
  • 创建collection

    实际上上就是graphql api schema 定义以及解析处理

const Movies = createCollection({
  typeName: "Movie",
  schema,
  resolvers,
  mutations
});

参考资料

http://docs.vulcanjs.org/schemas.html

vulcanjs schemas&& collections

标签:order   tab   create   自动生成   inf   nal   查询   custom   guests   

原文地址:https://www.cnblogs.com/rongfengliang/p/9575786.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!