首页 文章

带有中继框架的ArangoDB-Foxx

提问于
浏览
1

任何人都可以告诉我或指向我关于如何使用ArangoDB-Foxx和Relay Framework(或具体:relay-fullstack)的链接?我到处都看,没有运气 .

我有一个使用relay-fullstack的Relay项目,我想让它与ArangoDB-Foxx一起使用(目前我是'm using a schema from Relay framework' s tutorial) . 据我所知,ArangoDB-Foxx使用的是 graphql-sync 而不是 graphql . 所以它打破了 relay-fullstack 的建设过程 .

任何帮助将非常感激 . 谢谢.. :)

1 回答

  • 3

    我对relay-fullstack了解不多,但如果您唯一的问题是生成教程中提供的模式文件,请检查它是如何生成的:https://github.com/relayjs/relay-starter-kit/blob/master/scripts/updateSchema.js

    使用最新版本的graphql(或graphql-sync), introspectionQueryprintSchema 实用程序将直接从包中导出 .

    您可以通过创建名为 update-schema 的新Foxx脚本来模拟Foxx中的 updateSchema 脚本:

    首先将脚本添加到清单:

    "scripts": {
      "update-schema": "scripts/updateSchema.js"
    }
    

    然后像这样实现脚本本身 scripts/updateSchema.js (假设您的GraphQL架构位于 data/schema.js ):

    'use strict'
    const fs = require('fs')
    const path = require('path')
    const Schema = require('../data/schema')
    const gql = require('graphql')
    
    const result = gql.graphql(Schema, gql.introspectionQuery)
    if (result.errors) {
      console.error(
        'ERROR introspecting schema: ',
        JSON.stringify(result.errors.map((err) => gql.formatError(err)), null, 2)
      )
    } else {
      fs.writeFileSync(
        path.join(__dirname, '../data/schema.json'),
        JSON.stringify(result, null, 2)
      )
    }
    fs.writeFileSync(
      path.join(__dirname, '../data/schema.graphql'),
      gql.printSchema(Schema)
    )
    

    您现在可以从Web界面运行脚本,方法是进入服务的设置选项卡并从下拉列表中选择它(您不需要传递任何参数,只需按OK) . 该脚本应为您的架构生成两个JSON和GraphQL文件,就像入门套件中的那样 .

相关问题