📮

Node.jsの標準モジュール(https)でPostする

2021/09/19に公開

CloudFunctionsなどFaaSを使うと、Node.jsからPostすることがあるかと思います。
(個人的には実行結果をSlackに投稿する時に必要でした)

そこで「Node.js Post」と検索すると、 request モジュールを使った方法がいくつか出てきます。
ただこのモジュールはDeprecatedになっていて、今後のメンテナンスが行われないことが明言されています。
https://github.com/request/request/issues/3142

request 以外のモジュールを使う方法もいくつかありますが、今回は一番シンプルな標準モジュール(https)を使ったPost方法を紹介します。

import * as https from "https";

const data = JSON.stringify({
  text: "text",
});
const options = {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
  },
};
const url = POSTしたいURL
const request = https.request(url, options);
request.write(data);
request.end();

URLに対してJSONをPOSTしたい場合は、これだけのコードで実現出来ます。
レスポンスのStatusCodeを取得した場合は

const request = https.request(url, options, response => {
  console.log(`statusCode: ${response.statusCode}`)
})

とすれば可能です。
標準モジュールを使うことは今後のメンテナンスコストを減らすことに繋がるので、簡単なPOSTをしたい場合はぜひ使ってみてくだい。

Discussion