带有中继框架的ArangoDB-Foxx

时间:2016-07-02 08:55:38

标签: arangodb graphql relayjs foxx

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

我有一个使用relay-fullstack的Relay项目,我想让它与ArangoDB-Foxx一起工作(目前我正在使用来自Relay framework' s tutorial的模式)。据我所知,ArangoDB-Foxx使用graphql-sync代替graphql。因此它打破了relay-fullstack的构建过程。

非常感谢任何帮助。谢谢.. :))

1 个答案:

答案 0 :(得分:3)

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

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

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

首先将脚本添加到清单中:

"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文件,就像入门套件中的那样。