聞きたいこと
バックエンドと疎通をする際に、下のようなJavaScriptのオブジェクトをaxiosを使用して送信しています。
ただ、送信するオブジェクトに存在している、キー questions
ansewrs
に関しては、バリューで使用しているオブジェクト自体が空であればバックエンドの送信しない仕様としたいと思っています。
- オブジェクト
JavaScript
1{ 2 id: id, // -> string 3 name: name, // -> string 4 division: division, // -> string 5 prefecture: prefecuture, // -> string 6 birthday: birthday, // -> Date 7 gender: gender,// -> number 8 questions: questions, // -> Object 9 answers: answers, // -> Object 10 : 11}
今思いつくのだと、下のようにそれぞれのキーに対するバリューがから出ないかチェックする方法しか思いつきません。
if (question && answers) { axios .post('/api/sample/', { id: id, name: name, division: division, prefecture: prefecuture, birthday: birthday, gender: gender, questions: questions, answers: answers, }) .then(res => { : }) .catch(error => { : }); } if (question) { axios .post('/api/sample/', { id: id, name: name, division: division, prefecture: prefecuture, birthday: birthday, gender: gender, questions: questions, // answers: answers, }) .then(res => { : }) .catch(error => { : }); } if (answer) { axios .post('/api/sample/', { id: id, name: name, division: division, prefecture: prefecuture, birthday: birthday, gender: gender, // questions: questions, answers: answers, }) .then(res => { : }) .catch(error => { : }); }
もっとスマートに実装するためのライブラリーや方法などありましたら教えていただきたいです。
axios について詳しくないので的外れでしたら申し訳ないのですが、少し試してみたところ、undefined を渡すと送信データに含まれないようでした。