回答編集履歴
2
もうちょっと修正
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
JavaScript(以下JS)の知識だけでGraphqlの知識
|
1
|
+
JavaScript(以下JS)の知識だけでGraphqlの知識やその派生サービスは門外漢ですが
|
2
2
|
|
3
3
|
解決の種になるかと思ってこちらに投げます。
|
4
4
|
|
@@ -38,17 +38,17 @@
|
|
38
38
|
|
39
39
|
今回のケースはプロパティのチェインが1個でしたけど、
|
40
40
|
|
41
|
-
実際の業務
|
41
|
+
実際の業務だと`val.name.toUpperCase()`みたいに、
|
42
42
|
|
43
43
|
`name`プロパティでString型の値がとれるから、決め打ちで`toUpperCase`メソッドを叩いて大文字にしようみたいな事はよくやります。
|
44
44
|
|
45
45
|
|
46
46
|
|
47
|
-
すると途中でundefinedやnull値を踏んでエラーで落ちる
|
47
|
+
すると予想外な値が来すると途中でundefinedやnull値を踏んで、エラーで落ちる現象に繋がります。
|
48
48
|
|
49
|
-
|
49
|
+
今回のケースはまさにこのパターンを引いてしまっているので
|
50
50
|
|
51
|
-
|
51
|
+
JS上級者でなければ絶対に原因に辿り着く事が出来ない難度の高いエラーと言えるでしょう。
|
52
52
|
|
53
53
|
|
54
54
|
|
@@ -57,10 +57,6 @@
|
|
57
57
|
|
58
58
|
|
59
59
|
話をGraphqlに戻して、
|
60
|
-
|
61
|
-
こっからは完全に推測・憶測レベルの話になってきますので、
|
62
|
-
|
63
|
-
質問者さんによる調査が必要になってきます。
|
64
60
|
|
65
61
|
|
66
62
|
|
@@ -76,7 +72,7 @@
|
|
76
72
|
|
77
73
|
|
78
74
|
|
79
|
-
これは
|
75
|
+
これは下記のような解釈が出来ます。
|
80
76
|
|
81
77
|
|
82
78
|
|
@@ -87,6 +83,10 @@
|
|
87
83
|
- 質問文で記載した`query GetLaunches {}`から始まるクエリの書き方が誤っており、
|
88
84
|
|
89
85
|
向こうのモジュールでクエリをパースしてオブジェクトを生成することに失敗、大惨事が発生している
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
---
|
90
90
|
|
91
91
|
|
92
92
|
|
1
校正
test
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
JavaScript(以下JS)の知識だけでGraphqlの知識がな
|
1
|
+
JavaScript(以下JS)の知識だけでGraphqlの知識がないですが
|
2
|
-
|
3
|
-
回答になってなく完全にオフトピですが、
|
4
2
|
|
5
3
|
解決の種になるかと思ってこちらに投げます。
|
6
4
|
|
@@ -30,25 +28,27 @@
|
|
30
28
|
|
31
29
|
|
32
30
|
|
33
|
-
|
31
|
+
例えば`({name: "taro"}).age`というコードをJSで実行すると
|
34
32
|
|
35
|
-
`name`プロパティしか所持していない値に対して
|
33
|
+
`name`プロパティしか所持していない値に対して`age`プロパティを参照します。
|
36
34
|
|
37
|
-
|
35
|
+
すると「そんなプロパティはない」という事でundefinedが得られます。
|
38
36
|
|
39
37
|
|
40
38
|
|
41
|
-
今回のケースはプロパティが1個でしたけど、
|
39
|
+
今回のケースはプロパティのチェインが1個でしたけど、
|
42
40
|
|
43
41
|
実際の業務とかだと`val.name.toUpperCase()`みたいに、
|
44
42
|
|
45
|
-
`name`プロパティでString型の値がとれるから、決め打ちで`toUpperCase`メソッドを叩いて大文字にしようみたいな事はよくや
|
43
|
+
`name`プロパティでString型の値がとれるから、決め打ちで`toUpperCase`メソッドを叩いて大文字にしようみたいな事はよくやります。
|
46
44
|
|
47
45
|
|
48
46
|
|
49
|
-
|
47
|
+
すると途中でundefinedやnull値を踏んでエラーで落ちるというケースは多いですね。
|
50
48
|
|
51
49
|
それをどうすんねんってのは実装者の腕の見せ所ではあります。
|
50
|
+
|
51
|
+
私も慣れてきてまぁまぁ回避出来ますが、気が緩むと結構やらかします。
|
52
52
|
|
53
53
|
|
54
54
|
|
@@ -105,3 +105,11 @@
|
|
105
105
|
こういうモジュールってバージョンアップで記述ルールが変わって
|
106
106
|
|
107
107
|
以前使えた機能や書き方が使えなくなってることも考えられますからね。
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
しかし実際パースに失敗したなら
|
112
|
+
|
113
|
+
「不正なクエリなのでパース出来ませんでした」と記載しろや!という話なので
|
114
|
+
|
115
|
+
推測が正しいと仮定した場合、モジュールの作りはあまり良くないとは思いますね。
|