[Node.js]Fetch する方法

JavaScript

Nodeで外部サービスにアクセスする方法の一つとして
node-fetch というライブラリがあります。

この使用方法を簡単にまとめまーす。

npm install する

まずはnode-fetchをゲットするところからです。

$ npm install --save node-fetch

お決まりのコマンドですね。。。必要に応じて–saveオプションでpackage.jsonに記録しましょう。

レッツコーディング

const fetch = require('node-fetch');

async function api() {
    let url = 'アクセスしたいサイトのURL';
    let options = {
        method = 'GET',
        headers = {必要な情報をここにつめる},
        query = {必要な情報をここにつめる},
        body = {必要な情報をここにつめる}
    }

    var res = await fetch(url, options);
    var status = await res.status;
    var responseBody = await res.json();

    console.log('status:' + status + ', body:' + responseBody);
}

ポイントは async / await

Node.jsは非同期で動く前提なので、fetchで外部サイトへリクエストを送ると
そのレスポンスを待たずに次の処理が動いてしまうのです。

対策として await を使うことで、レスポンスを待つようになります。

awaitを使わないと全然欲しいデータが取れないので、要注意っす。