blog.euxn.me

Axios より fetch の方が良いと思う

2024-03-18 Mon.

Axios は status code が 4xx 、 5xx 系の際に勝手に throw するのがあまり好きではなかったが、 そもそも throw を極力使わないようにする neverthrow との相性が悪いのは決定的な違いではあると思う。

Axios でも validateStatus 等で throw しないようにできるが、そもそも特別な理由がなければ Axios を採用しなくても良いのでは……。

とはいえ、 Node.js (undici) では response.body を使用しないとメモリリークするなど不安定な挙動があったり、
型の問題や内部的に同値でも class が違うなどにより特定のライブラリでうまく動作しない(AWS SDK で踏んだ)などがあるので、一概に Node.js でも fetch を使うべきかというとそこはケースバイケースであると思う。 S3 に stream で pipe したい場合は Axios の方が変なものを踏まないということもある。