2023-07-01から1ヶ月間の記事一覧

JestでNode.jsのfetchをテストしたい

背景 内部でfetchを呼んでいる関数をテストしたいです。 Nodeのv18以降ではnode-fetchなしでfetchが使えるようになりましたが、node-fetchを使っているサンプルが多く組み込みのfetchを使っているサンプルが少ないので調べました。 結論 node:testモジュール…

fetchで一定時間応答がなければタイムアウトしたい

AbortSignal.timeout()が使えます。 // 10秒でタイムアウト const res = await fetch(url, { signal: AbortSignal.timeout(10000) }); タイムアウトすると、TimeoutErrorが例外で投げられるのでこれをcatchして処理します。

Node.jsのfetchを使ってページを取得する

基本はブラウザと同じです。ただし、awaitがトップレベルでも使えます。(async functionの中にいなくても良い) 自分はnode-fetchを使ったことがないがおそらく同じ感じでしょう。 記事を書いた時点でNode.jsのバージョンはv18.16.0です。 取得 try { const r…