2015-10-24 5 views
5

ここでは、私はgraphql-jsでエラー処理を処理する方法を理解しようとしています。 (リレーなしの場合)graphql-jsを使用した関連するHttpレスポンスコード

不十分です!さて、graphql-jsが解決関数内に投げ込まれたすべてのエラーを捕捉しているので、私はエラーとhttp応答を適切に扱う方法を混乱させます。

私はいくつかのアイデアを持っていて、あなたの考えを知りたいと思っています!

  1. エラーが含まれていても、常にgraph OKで200 OKを返します。

  2. result.errors [0]の大文字と小文字を切り換え、エラーに関してhttp応答を返し、エラーがなければresult.dataを返します。エラーが解決関数の中で処理し、(特急app.post機能では(例えば{ httpCode: 404, msg: 'No X found with the requested id' }

  3. を投げると、オブジェクトと(veeeery長いスイッチケースになってしまう可能性がある)

    • ディールまたは任意のウェブフレームワーク)、のようなもの持つ:これは、現在エラーが発生したため、オブジェクトはマーシャルのある方法で動作しません

      app.post('/graphql', function(req, res) { 
          let result = await graphql(req.body); 
      
          if(result.errors.size) { 
          let e = result.errors[0]; 
          res.status(e.httpCode).send(e.msg); 
          } 
      
          res.json(result.data); 
      } 
      

    をエド...または少なくとも私はまだグラフをそれから取得する方法を発見していない。私は多分graphql-jsのソースを調べることを考えていますが、私は明らかに何かが不足している可能性があるので、皆さんに最初に尋ねる方がよいと思いました。

明らかに、より良い考えは歓迎です!

乾杯:D

答えて

1

私もこれを理解しようとしています。

最高の私が思いついたことは、私のリゾルバにカスタムエラーを投げていることです。 apollo-errorsをチェックしてください。これが最善の方法かどうかはわかりませんが、それはあなたのために働くことができます。

関連する問題