LoopBack プロジェクトの作成と実行
LoopBackとは?
LoopBack は、IBM によって開発された、高度に拡張可能な Node.js フレームワークで、API およびマイクロサービスの構築に使用されます。強力なツールと特徴を提供し、開発者が容易に API を作成、テスト、およびデプロイできるようにします。LoopBack は、モデル駆動開発(MDD)を採用しており、迅速に RESTful API を生成し、さまざまなデータベース接続をサポートします。
LoopBack の主な特徴と利点
- モデル駆動開発:モデル定義を通じて、自動的に RESTful API を生成します。
- 多データベースサポート:MongoDB、MySQL、PostgreSQL、MariaDB など、さまざまなデータベースをサポートします。
- 強力な CLI ツール:LoopBack CLI は豊富なコマンドを提供し、プロジェクトの作成と管理を簡略化します。
- 豊富なプラグインと拡張機能:多数のプラグインと拡張機能があり、サードパーティのサービスやライブラリと簡単に統合可能です。
- 内蔵のユーザー認証と認可:強力なユーザー認証と認可メカニズムを提供します。
LoopBackを使用することで、開発者は高性能でスケーラブルなWebアプリケーションおよびAPIを迅速に構築することができます。
ServBay を使用して LoopBack プロジェクトを作成・実行
この記事では、ServBay が提供する Node.js 環境を使用して LoopBack プロジェクトを作成し、実行します。ServBay の「ホスティング」機能を使用して Web サーバーをセットアップし、リバースプロキシを通してプロジェクトにアクセスします。
LoopBack プロジェクトの作成
LoopBack CLI のインストール
まず、ServBay が提供する Node.js 環境をインストールしたことを確認します。それから、以下のコマンドを使用して LoopBack CLI をグローバルにインストールします:
bashnpm install -g @loopback/cli
1プロジェクトの初期化
ServBay 推奨のウェブサイトルートディレクトリ
/Applications/ServBay/www
に新しい LoopBack プロジェクトを作成します:bashcd /Applications/ServBay/www lb4 app servbay-loopback-app
1
2指示に従ってプロジェクト名を入力(
servbay-loopback-app
を推奨)し、必要に応じて他のオプションを選択します。依存関係のインストール
プロジェクトディレクトリに移動して依存関係をインストールします:
bashcd servbay-loopback-app npm install
1
2
LoopBack プロジェクトの出力内容を変更
src/controllers/ping.controller.ts
ファイルの修正src/controllers/ping.controller.ts
ファイルを開き、ウェブページが "Hello ServBay!" と出力するように内容を修正します:typescriptimport {get} from '@loopback/rest'; export class PingController { constructor() {} @get('/ping') ping(): string { return 'Hello ServBay!'; } }
1
2
3
4
5
6
7
8
9
10
開発モードに入る
開発サーバーの実行
開発サーバーを起動し、ポートを指定します(例:8585)。:
bashPORT=8585 npm start
1これにより、ローカルで開発サーバーが起動し、ポート 8585 が公開されます。
ServBay ホストのリバースプロキシ構成
ServBay の「ホスティング」機能を使用して、リバースプロキシを通して開発サーバーにアクセスします。ServBay の「ホスティング」設定で、以下のように新しいリバースプロキシを追加します:
- 名前:
My first LoopBack dev site
- ドメイン:
servbay-loopback-test.dev
- ホストタイプ:
リバースプロキシ
- IP:
127.0.0.1
- ポート:
8585
詳細な設定手順は、Nodejs 開発サイトの追加を参照してください。
- 名前:
開発モードにアクセス
ブラウザを開き、
https://servbay-loopback-test.dev/ping
にアクセスして、プロジェクトをリアルタイムで確認します。ServBay はカスタムドメインと無料の SSL 証明書をサポートしているため、より高いセキュリティを享受できます。
本番バージョンのデプロイ
本番環境の準備
プロジェクトが本番環境で正常に動作することを確認します。通常、LoopBack プロジェクトには特別なビルド手順は不要ですが、いくつかの環境変数の設定や他の構成が必要な場合があります。
本番サーバーの実行
本番サーバーを起動し、ポートを指定します(例:8586)。:
bashPORT=8586 NODE_ENV=production npm start
1ServBay ホストのリバースプロキシ構成
ServBay の「ホスティング」機能を使用して、リバースプロキシを通して本番サーバーにアクセスします。ServBay の「ホスティング」設定で、以下のように新しいリバースプロキシを追加します:
- 名前:
My first LoopBack production site
- ドメイン:
servbay-loopback-test.prod
- ホストタイプ:
リバースプロキシ
- IP:
127.0.0.1
- ポート:
8586
- 名前:
本番モードにアクセス
ブラウザを開き、
https://servbay-loopback-test.prod
にアクセスして本番バージョンを確認します。ServBay のカスタムドメインと無料の SSL 証明書を使用することで、ウェブサイトのセキュリティと信頼性が向上します。
データベース接続
ServBay は Redis、MariaDB、PostgreSQL、および MongoDB データベースをサポートしています。以下はこれらのデータベースに接続する例です。
MongoDB への接続
@loopback/connector-mongodb
をインストールします:bashnpm install --save @loopback/connector-mongodb
1その後、プロジェクト内でデータソースを設定します:
typescript// src/datasources/mongodb.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mongodb', connector: 'mongodb', url: 'mongodb://localhost/servbay-loopback-app', host: 'localhost', port: 27017, user: '', password: '', database: 'servbay-loopback-app', }; export class MongodbDataSource extends juggler.DataSource { static dataSourceName = 'mongodb'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20Redis への接続
loopback-connector-redis
をインストールします:bashnpm install --save loopback-connector-redis
1その後、プロジェクト内でデータソースを設定します:
typescript// src/datasources/redis.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'redis', connector: 'redis', url: 'redis://localhost:6379', }; export class RedisDataSource extends juggler.DataSource { static dataSourceName = 'redis'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15MariaDB への接続
@loopback/connector-mysql
をインストールします:bashnpm install --save @loopback/connector-mysql
1その後、プロジェクト内でデータソースを設定します:
typescript// src/datasources/mariadb.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'mariadb', connector: 'mysql', url: '', host: 'localhost', port: 3306, user: 'root', password: 'password', database: 'servbay_loopback_app', }; export class MariaDbDataSource extends juggler.DataSource { static dataSourceName = 'mariadb'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20PostgreSQL への接続
@loopback/connector-postgresql
をインストールします:bashnpm install --save @loopback/connector-postgresql
1その後、プロジェクト内でデータソースを設定します:
typescript// src/datasources/postgresql.datasource.ts import {juggler} from '@loopback/repository'; const config = { name: 'postgresql', connector: 'postgresql', url: '', host: 'localhost', port: 5432, user: 'user', password: 'password', database: 'servbay_loopback_app', }; export class PostgresqlDataSource extends juggler.DataSource { static dataSourceName = 'postgresql'; constructor() { super(config); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
以上の手順に従って、LoopBack プロジェクトを作成し、ServBay が提供する機能を使用してプロジェクトを管理およびアクセスし、複数のデータベースに接続することに成功しました。