悲しいかな、ググるとrequestのサンプルが非常に多いので助かっていたのですが、deprecatedだったので、代替モジュールを使わなければなりません。requestの代替ライブラリのスレッドでいくつか挙げられていますが、コメント見てると多かったaxiosが良さげかもしれません。
Alternative Libraries to request #3143
コメント見ているとaxiosが多いので、これを使ってみます。

1.Axiosを使ってみる
早速インストールして使ってみます。
npm install axios
1.1 requestで書いてたコードをaxiosで書いてみる
1.1.1 requestで動いていたコード
reuqestで書いていたコードは下記です。サーバ側でauth認証して、渡したデータを加工し結果をjsonで返すような事しています。gzip圧縮もaccept-encoding=gzip指定したらgzipで返ってきます。
let headers = { 'Content-Type':'application/json', 'Accept-Encoding': 'gzip', 'Accept-Charset': 'utf-8', 'Content-Encoding:'gzip' }; let options = { url: g_url_base + g_url_page, method: 'post', headers: headers, auth: { user: "username", password:"password" }, json: true, form: data }; request(options, function(err,res,body){ if(res.headers['content-encoding']=='gzip'){ }else{ let json = JSON.parse(body); ... } });
1.1.2 axiosで動いたコード
axiosだと以下で似た感じで動くのだけど、accept-encoding gzipが効いていない。誰か詳しい人・・・
あとはoptionのパラメータが多少違うことくらい。
let headers = { 'Content-Type':'application/json', 'Accept-Encoding': 'gzip', 'Accept-Charset':'utf-8', 'Content-Encoding': 'gzip' } let options = { baseURL: g_url_base, url: g_url_page, method: 'post', headers: headers, auth: { username:"username", password:"password" }, json: true, data:data } axios.request(options).then(function(res){ if(res.headers['content-encoding']=='gzip'){ }else{ let json = res.data; } }
gzipがうまくいってないです・・・requestモジュール時はContent-Encoding, Accept-Encodingともにgzipでイケてたのに。まぁ、ここは検討事案ということにして、とりあえず自分の用途での置き換えはすんなりいけました。
結果をgzip圧縮してファイルに保存でjsonデータがテキストと比べ1/3~1/4になるのでいいですね。
zlib.gzip(res.data, function(err,result){ if(!err){ fs.writeFileSync(filename, result); } });
2. axios メソッドエイリアス
今回は axios(config)を使いました。が、configの一部を省略できる関数が用意されているので、そちらを使ってもいいかもしれません。

3. リクエスト時のconfig
オプションは下記に記載されています。

4. 言葉の使い方、モジュール、ライブラリ、パッケージ?
日本語だとモジュールが一番使われていますね。
海外だとどうなんでしょうね。
どれが一般用語なのかわからないのですが、とりあえずタイトル部分にはモジュール、文章にはライブラリを使うようにしようと思います。
コメント