2016-07-02 4 views
1

릴레이 프레임 워크와 함께 ArangoDB-Foxx를 사용하는 방법에 대해 누구에게도 설명하거나 알려 줄 수 있습니까 (구체적으로는 relay-fullstack)? 나는 도처에 보았고 운이 없었습니다.릴레이 프레임 워크가있는 ArangoDB-Foxx

relay-fullstack을 사용하는 릴레이 프로젝트가 있고 ArangoDB-Foxx (현재는 Relay 프레임 워크의 tutorial에서 스키마를 사용하고 있습니다)와 함께 작동하게하고 싶습니다. 아시다시피, ArangoDB-Foxx는 graphql 대신 graphql-sync을 사용합니다. 따라서 건축 과정이 깨지면 relay-fullstack이됩니다.

도움이 될 것입니다. 감사합니다 .. :) 내가 릴레이 fullstack에 대해 잘 알고 있지만 유일한 문제는 튜토리얼에서 제공하는 스키마 파일을 생성하는 경우, 단지가 생성되는 방법을 선택하지

답변

3

: 최신 버전으로 https://github.com/relayjs/relay-starter-kit/blob/master/scripts/updateSchema.js

graphql (또는 graphql-sync)의 introspectionQueryprintSchema 유틸리티는 패키지에서 직접 내보내집니다. (

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

는 다음과 같이 scripts/updateSchema.js로 스크립트 자체를 구현 :

먼저 매니페스트에 스크립트를 추가 :

당신은라는 새로운 폭스 스크립트 update-schema을 만들어 폭스에서 updateSchema 스크립트를 에뮬레이션 할 수 있습니다 가정 당신의 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) 
) 

당신이 할 수있는 이제 서비스의 설정 탭으로 가서 드롭 다운에서 선택하여 웹 인터페이스에서 스크립트를 실행합니다 (아무런 인수도 전달할 필요가 없으며 OK를 누릅니다). 스크립트는 스타터 키트에있는 것처럼 JSON 및 GraphQL 파일을 생성해야합니다.

+0

좋은 답변입니다. 또한'schema.json'를 Relay 앱에 다시 전달하려면 Foxx에 api (GET)를 제공해야합니다. 'server/utils/babelRelayPlugin.js'에서 GET 요청을 한 다음, 검색된'schema.json'을 전달하여'babel-relay-plugin'을 설정해야합니다. – lvarayut