axios(アクシオス) とは?
axiosを使うと、以下のようなことができます。
| 処理内容 | 説明 |
|---|---|
| GETリクエスト | サーバーからデータを取得する(例:ニュース一覧を取得) |
| POSTリクエスト | サーバーにデータを送信する(例:ユーザー登録) |
| PUT / DELETE | データの更新や削除 |
| JSON自動変換 | JSONを自動でJavaScriptオブジェクトにしてくれる |
| エラーハンドリング | 通信エラーを簡単に扱える |
| ヘッダー設定 | 認証トークンなどを簡単に追加できる |
ライブラリをインストールするには、以下のコマンドを実行します。
npm install axios 使用例
GETリクエストを使ってデータを取得するには、以下のようにします。
const axios = require('axios');
axios.get('https://api.example.com/users')
.then(response => {
console.log(response.data); // 取得したデータ
})
.catch(error => {
console.error(error); // エラー処理
}); POSTリクエストでデータを送信するには、以下のようにします。
const axios = require('axios');
axios.post('https://api.example.com/users', {
name: 'Taro',
email: 'taro@example.com'
})
.then(response => {
console.log(response.data); // 結果
})
.catch(error => {
console.error(error);
}); HTMLの要素を取り出す
axios はHTML通信を行うためのライブラリのため、HTMLの「 文字列 」を取得するところまでしか行いません。
HTMLの文字列から要素を取り出したい場合は、HTMLパーサー(解析ライブラリ)を使います。
Node.js のHTML/XMLパーサーには、Cheerio(チェリオ)があります。
Cheerioは、主にウェブスクレイピング(Web Scraping)やHTMLの解析・操作に使われるライブラリです。
Express Generator で作成したアプリのindex.ejsのファイルの内容を取得します。
Express.jsのアプリを起動した状態で、以下のファイルを実行します。
const axios = require('axios');
const cheerio = require('cheerio');
(async () => {
try {
// HTMLを取得
const response = await axios.get('http://localhost:3000');
// cheerioでHTMLを読み込む
const $ = cheerio.load(response.data);
// タイトル要素を取得
const title = $('h1').text(); // h1タグの中のテキスト
console.log('タイトル:', title);
// 複数要素をループして取得
$('p').each((i, elem) => {
console.log('段落', i + 1, ':', $(elem).text());
});
} catch (error) {
console.error('取得エラー:', error);
}
})();
結果
-------------------------------------------
タイトル: Express
段落 1 : Welcome to Express