概要
Node.jsによるAPI構築ついての備忘録です。
元々、XServerVPSにNode.jsによりランキング登録/取得APIを作成していましたが、他のアプリのAPIを追加もあり、全体の構成を見直し再構築及びリソース管理方法の変更を行いました。
合わせて、ローカル環境においてのデバック実行の方法なども調査し、実施してみます。
環境
サーバーサイド
- サーバー:XServerVPS
- OS:Ubuntu
- DB:MySQL
- APIランタイム:Node.js
- Webフレームワーク:Express.js
- Webサーバーソフト:Apache
ローカルサイド
- ソースエディタ:VSCode
- 仮想Webサーバー:Apache(XAMPP)
- DBサーバー:MySQL(XAMPP)
その他
- ソース管理:Git(GitHub)
Node.jsについて
Node.jsは、JavaScriptをサーバーサイドで実行できるようにするオープンソースの実行環境です。
JavaScriptといえばフロントエンドで使われるイメージですが、Node.jsはサーバーサイドのバックエンドでもJavaScriptが使えます。
メリットとては、フロントエンドでJavaScriptを使っている場合に言語の学習コストが下がることがメインでしょうか。
あとは、ノンブロッキングI/O方式っていうのを使っていて大量の同時接続を効率的に処理ができたり、ライブラリが豊富だったりします。
今回はフロントエンドでJavaScript(実際はTypeScript)を使用するAngularによるアプリ開発を行うため、学習コストを抑えるためにNode.jsでAPIを作ることにしました。
というか、AngularもNode.jsを使っています。
フロントエンドで動くJavaScriptをサーバーサイドで動かすためのNode.jsを使用してフロントエンドを動かすという、なんだかややっこしいことをやっていますが
・Node.jsはJavaScriptの実行環境なのでフロントエンドでもバックエンドでも実行可能
・Node.jsでは単にJavaScriptを使うより豊富なライブラリを使用できる
というのが理由かと思います。
Node.jsの基本構成
Node.jsの基本的な構成として
・実際にコードを記載するjsファイル
・プロジェクトの設定や依存ライブラリ、スクリプトを記述したpackage.json
・実際にインストールされたパッケージの正確なバージョンと依存関係が記載されたpackage-lock.json
・インストールされたライブラリやツールが保存されるnode_modules
「npm init」コマンドを行うとpackage.jsonが作成されます。
package.jsonは「npm install パッケージ名」のようにコマンドでパッケージをインストールするとそのパッケージの情報が自動で記載されます。
package.jsonとpackage-lock.jsonの違いとしては、package.jsonは依存するパッケージのバージョン等を範囲を持たせて曖昧に記載しているのにたいして、package-lock.jsonは実際にnode_modulesに格納したパッケージのバージョン情報が記載されています。
package.jsonとpackage-lock.jsonをGitなどで管理、共有することで同じ環境を構築することが出来ます。
それにより、node_modulesの中身を直接的にGitで管理する必要がなくなります。
(自身が作成していないファイルの管理が不要になり、また、容量圧迫の回避にもなります。)
Node.jsの実行
現行の構成

クルクルシューティングのランキング用APIがnode_modulesやpackage.jsonなどと同じ階層のディレクトリに格納しています。


コメント