2016-04-21 17 views
1

私は、ノード、エクスプレス、GraphQL、Postgresを使用するOpenShift上でサーバを設定する方法を学んでいます。OpenShiftでgraphQLを設定する

私はこれを、次のしてきたGraphQLサーバーをセットアップしようと、それは私のローカルマシン上で動作します:

import Express from 'express'; 
import GraphQL from 'express-graphql'; 
import Schema from './db/GQLschema'; 

const app = Express(); 

app.use('/graphql', GraphQL({ 
    schema: Schema, 
    pretty: true, 
    graphiql: true 
})); 
... 

私はに上記の変更ので、OpenShiftによって提供さserver.jsテンプレートを使用しています:

... 
self.app = express(); 

self.app.configure(function() { 
    self.app.use('/public', express.static(__dirname+'/public')); 
    self.app.use('/graphql', GraphQL({ 
     schema: Schema, 
     pretty: true, 
     graphiql: true 
    })); 
}); 
... 

しかし、これはOpenShiftにプッシュされても機能しません。私はGraphiqlインターフェイスの代わりに '内部サーバーエラー'を取得します。

私はこれに新たなんだけど、ここではそれはとしなければならないかもしれないものに関しては、いくつかの推測です:への接続

  1. 不足している依存関係データベースへの接続

    1. データベース:2つのjson設定ファイルがあります。 OpenShiftへのポートフォワードSSHトンネルを使用して接続されているローカルマシン用のもの。それはうまく動作します。もう一つは生産のためのものです。そこには、OpenShiftが私に提供したデータベース名、ユーザー、ポート、ホスト、およびパスワードのすべての文字列があります。私はどのconfig jsonファイルを使用するかを決定するためにNODE_ENVを調べるconfigライブラリを使用しています。 OpenShiftのNODE_ENV変数を本番環境に設定しました。私がそれを照会すると、すべての正しい文字列が表示されます。私は設定する必要がある何か他にありますか?

    2. 不足している依存関係:私はバックエンドコードを自分のフロントエンドコードとは別に保管しています。したがって、バックエンドコードには、express、graphql、sequelize、config、およびpgのものだけがインストールされています。私はgraphiqlページを動作させるために何か他のものが必要ですか?また、すべての/ node_modules /を.gitignoreファイルに入れます。私は、OpenShiftがポストプッシュをインストールすると仮定しました。それは正しいことでしたか?

は、任意のヘルプをお願い申し上げます!エラーログ

rhc tail -a <yourappname> 

これはあなたにいくつかの手がかりを与えるオンにopenshiftのCLIツールで

: -

答えて

1

OK、私は以下のようにして、それを解決しました。私の場合、それはexpress-graphqlの「未解決の約束」からのメッセージでした。

require ('es6-promise').polyfill(); 

・ホープ誰か他の人に役立ちます:研究の後、私はあなたがインストールして保存ES-約束をし、server.jsファイルの先頭に次の行を追加するとことがわかりました!

関連する問題