こんにちは。しゃっくです。
今回はNode.jsの勉強をかねて簡単なバッチ処理の作成をしてみました。
Node.jsのインストールから始まり、requestモジュールでhttpリクエストを投げるところまでやってみました。
開発環境
- Windows 10 Home
Node.jsダウンロード
Node.jsのHPからインストーラーをダウンロード
Node.js インストール
ダウンロードしたインストーラーを実行
僕は全部デフォルトのままインストールしました
Tools for Native Modules に関しては迷いましたが、不要なモジュールは入れたくないのでチェックなしでインストールしました
コマンドを実行し、インストール確認
C:\Users\shakku>node -v
v14.17.4
プロジェクト作成
package.json作成
コマンドプロンプトを起動
プロジェクトフォルダ作成
C:\Users\shakku>mkdir testBatch
フォルダ移動
C:\Users\shakku>cd testBatch
package.json作成
C:\Users\shakku\testBatch>npm init -y
実行結果
C:\Users\shakku\testBatch>npm init -y
Wrote to C:\Users\shakku\testBatch\package.json:
{
"name": "testBatch",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
パッケージをインストール
使用するパッケージ
- request ・・・ httpリクエストするためのモジュール
インストール
コマンド実行
C:\Users\shakku\testBatch>npm install request --save
実行結果
C:\Users\shakku\testBatch>npm install request --save
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN testBatch@1.0.0 No description
npm WARN testBatch@1.0.0 No repository field.
+ request@2.88.2
added 47 packages from 58 contributors and audited 47 packages in 4.469s
2 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
requestは非推奨とのことですが、今回は動けばいいので、このまま進みます。
きちんとしたプロジェクトを作成する場合は、他のモジュールの検討が必要そうです。(AxiosとかSuperAgentとかnode-fetchとかってものがあるようです)
これによりtestBatchフォルダにpackage-lock.jsonとnode_modulesが作成されました。
index.js作成
プロジェクトのプライマリエントリポイントとなるindex.jsを作成します。
testBatchの直下にindex.jsを作成し、以下のコードを貼り付けます。
const request = require('request');
const param1 = {
url: 'https://www.google.com/',
method: 'GET'
}
console.log('開始');
request(param1, function(err, res, body){
if (err) {
console.log(err);
} else {
console.log(res.statusCode);
}
});
console.log('完了');
実行
コマンド実行
C:\Users\shakku\testBatch>node index.js
結果
C:\Users\shakku\testBatch>node index.js
開始
完了
200
非同期となっているので、「完了」の後にstatusCodeが出力されています。
残課題
- requestが非推奨なため、他のhttpリクエストできるモジュールを検討する必要がある
- request処理を待機できるようにしたい(async/awaitしたい)