実現したいこと
JavaScript(Next.js)で自作アプリを作っています。
サーバーサイド言語とフロントを別々にして作っていて、fetch関数でサーバーからのデータを取得していますが、url文字列の生成方法でfetch関数がエラーになったりならなかったりします。
後述するソースコードのようにバッククォートを使ったURL文字列の中に変数埋め込みで生成したurl文字列だと、バックエンド側でパラメーターが"undefined"に変換されてエラーになります。
解消方法をご存じの方いたらよろしくお願いしまします。
発生している問題・分からないこと
先述したとおりURL文字列の中に変数埋め込みで生成したurl文字列だと、バックエンド側でパラメーターの値が"undefined"に変換されてエラーになります。
該当のソースコード
export async function fetch(num) { console.log(num)// -> 0 let param1= num; let param2= num+3; const url1 =`http://localhost:3000/top?paramA=${param1}¶mB=${param2}`; const url2 =`http://localhost:3000/top?paramA=${0}¶mB=${3}`; const res = await fetch(url1); //url1はバックエンド側でparamAの値が"undefined"に置き換わられていてエラーになるが、url2はちゃんと数値が渡されていてエラーにならない const result = await res.json(); return result }
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
バックエンド側でデバックしたらリクエストパラメーターの値が"undefined"に置き換わられていてエラーになる
※追記
コンソール上でurl1を確認したら、
http://localhost:3000/top?paramA=0¶mB=3
と出力されました。
回答2件
あなたの回答
tips
プレビュー