2

谁能告诉我或指向有关如何将 ArangoDB-Foxx 与 Relay Framework 一起使用的链接(或具体而言:relay-fullstack)?我到处寻找,没有运气。

我有一个使用relay-fullstack的 Relay 项目,我想让它与 ArangoDB-Foxx 一起工作(目前我正在使用 Relay 框架教程中的模式)。据我所知,ArangoDB-Foxx 使用graphql-sync而不是graphql. 所以它打破了relay-fullstack.

任何帮助将不胜感激。谢谢.. :)

4

1 回答 1

3

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

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

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 文件,就像入门工具包中的文件一样。

于 2016-07-04T09:58:11.423 回答