Node.jsでのcURLに相当するコード例
以下に、両モジュールを使った例を示します。
requestモジュール
const request = require('request');
request('https://api.example.com/data', (error, response, body) => {
if (error) {
console.error('Error:', error);
} else {
console.log('Body:', body);
}
});
axiosモジュール
const axios = require('axios');
axios.get('https://api.example.com/data')
.then(response => {
console.log('Data:', response.data);
})
.catch(error => {
console.error('Error:', error);
});
これらの例では、どちらもhttps://api.example.com/data
というURLにGETリクエストを発行し、レスポンスのボディをログに出力しています。
Node.jsでのcURLに相当するコード例
const request = require('request');
request('https://api.example.com/data', { json: true }, (error, response, body) => {
if (error) {
console.error('Error:', error);
} else {
console.log('Body:', body);
}
});
- 成功した場合、レスポンスのボディを出力します。
- エラーが発生した場合、エラーメッセージを出力します。
{ json: true }
オプションを指定することで、レスポンスをJSON形式で解析します。https://api.example.com/data
というURLにGETリクエストを発行します。request
モジュールをインポートします。
axiosモジュールを使った例
const axios = require('axios');
axios.get('https://api.example.com/data')
.then(response => {
console.log('Data:', response.data);
})
.catch(error => {
console.error('Error:', error);
});
- 成功した場合、
then
ブロックでレスポンスのボディを処理します。
cURLとNode.jsの対応関係
cURLコマンド | Node.jsコード |
---|---|
curl -X GET https://api.example.com/data | request('https://api.example.com/data', ...) <br>axios.get('https://api.example.com/data', ...) |
curl -X POST https://api.example.com/data -d '{"key":"value"}' | request.post('https://api.example.com/data', { json: { key: 'value' } }, ...) <br>axios.post('https://api.example.com/data', { key: 'value' }, ...) |
curl -H "Authorization: Bearer token" https://api.example.com/data | request('https://api.example.com/data', { headers: { Authorization: 'Bearer token' } }, ...) <br>axios.get('https://api.example.com/data', { headers: { Authorization: 'Bearer token' } }, ...) |
Native Node.js HTTPモジュール
Node.jsに標準で含まれるhttp
モジュールを使用することも可能です。ただし、より高レベルな抽象化を提供するrequest
やaxios
と比べると、自分でリクエストの組み立てやレスポンスの処理を実装する必要があります。
const https = require('https');
const options = {
hostname: 'api.example.com',
path: '/data',
method: 'GET'
};
https.request(options, (res) => {
res.on('data', (d) => {
process.stdout.write(d);
});
}).on('error', (err) => {
console.error(err);
});
Fetch API
Node.js環境でも、ブラウザのFetch APIをエミュレートするライブラリを使用することができます。例えば、node-fetch
ライブラリが有名です。
const fetch = require('node-fetch');
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error( error));
他にも、特定のユースケースや機能に特化したライブラリが存在します。例えば、got
はシンプルで軽量なHTTPクライアントライブラリです。
選択基準
- コミュニティ
アクティブなコミュニティがあり、サポートやアップデートが提供されているライブラリを選ぶことが望ましいです。 - 性能
特定のユースケースでパフォーマンスが重要な場合は、ベンチマークテストを実施して最適なライブラリを選択します。 - 機能
必要とする機能やレベルの抽象化に応じて選択します。
curl node.js