回答編集履歴

2

もうちょっと修正

2021/12/15 07:51

投稿

miyabi-sun
miyabi-sun

スコア21203

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
- 実際の業務とかだと`val.name.toUpperCase()`みたいに、
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
- これは2通りの解釈が出来ます。
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

校正

2021/12/15 07:51

投稿

miyabi-sun
miyabi-sun

スコア21203

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
- このundefinedは`({name: "taro"}).age`という風に
31
+ 例えば`({name: "taro"}).age`というコードをJSで実行すると
34
32
 
35
- `name`プロパティしか所持していない値に対して
33
+ `name`プロパティしか所持していない値に対して`age`プロパティを参照します。
36
34
 
37
- `age`プロパティを参照するとそんなプロパティはないという事でundefinedが得られます。
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
- それで途中undefinedやnull値を踏んでエラーで落ちるというケースは多いですね。
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
+ 推測が正しいと仮定した場合、モジュールの作りはあまり良くないとは思いますね。