前提
nuxtを使用してシステムを作っています。
(今回の質問はnuxtとは関係ないと思うのでjavaScriptタグのみ付けております。)
今までPHPでしかシステムを作ったことがなかったので、javaScriptの知識が浅い
実装の質問もなのですが、実装する際の考え方があっているかの確認がしたいため投稿させていただきました。
現在APIが通信エラーになった際のテストをしており、下記のエラーが返ってきました。
通信エラーが発生した際、res.data.statusは返ってこないように実装されています。
発生している問題・エラーメッセージ
YYYY-MM-DD [APP/PROC/WEB/0] ERR ERROR Cannot read property 'status' of undefined
対象のオブジェクトがないからundefinedが出ているのは理解しています。
該当のソースコード
javascript
1 // resはAPIから返ってきたレスポンスとする 2 if (!res || !res.data || !res.data.status ) { 3 context.redirect('/error') 4 }
質問したいこと
- javaScriptではオブジェクトがあるかどうかわからない時(オブジェクトはあるが中身が空も含む)、上記のような判定の仕方は正しいですか?
- obj.hasOwnProperty()などを使うべきなのか?
- エラーがはかれるのは許容すべきなのか?
なぜ疑問に思ったか、質問した経緯、その他
- phpでundefinedが出た時、先輩にはこの手のエラーログが出ないように実装しろと言われていたので、疑問に思いました。jsではこの手のエラーログは出ても仕方ない、許容されている・・・とかあるのでしょうか?
- ネットで一応調べて、上記の実装も正しいように思えましたが、エラーが出てるのが個人的に気持ち悪い&ネットだと探し方が悪かったのか納得があまりできる説明がなかったため、参考になるURLや回答があれば教えてください。よろしくお願いします。
追記
レスポンス書いてましたが勘違いが生じそうなので削除しました。
回答3件
あなたの回答
tips
プレビュー