Node.jsアプリケーションの構築
JSON DatabaseにアクセスするNode.jsアプリケーションを構築するには、まず、Autonomous JSON Databaseの高パフォーマンス機能を利用できるデータベース・アクセスをサポートするように開発システムを構成します。 次に、アプリケーションで、これらの機能を利用するためのデータベース接続およびSQL文をコーディングします。
Node.js開発システムの構成
Node.jsアプリケーションがJSON Databaseの高パフォーマンス機能を利用できるように開発システムを構成するには、これらのステップを実行します。
- Node.jsをダウンロードしてインストールします。
- Oracle Instant Clientをダウンロードしてインストールします。
- node-oracledbをダウンロードしてインストールします。
- データベースのクライアント資格証明をダウンロードし、Oracle Instant Clientで使用できるようにします。
Node.jsのダウンロードとインストール
システムのOSおよびアーキテクチャ用のNode.jsをダウンロードしてインストールします:
-
Oracle Linux:
次のコマンドを実行して、最新バージョンのNode.jsをダウンロードしてインストールします:
sudo yum install -y oracle-release-el7 oracle-nodejs-release-el7 sudo yum install -y nodejs
-
その他のOSおよびアーキテクチャ:
Node.jsの「ダウンロード」ページに移動し、システムのOSおよびアーキテクチャ用の最新のLTS (長期サポート)バージョンを選択してインストールします。
Oracle Instant Clientのダウンロードとインストール
Oracle Instant Clientライブラリ・バージョン19.6以降が必要です。
システムのOSおよびアーキテクチャ用のOracle Instant Client基本パッケージをダウンロードしてインストールします:
-
Oracle Linux:
次のコマンドを実行して、Oracle Instant Client基本パッケージをダウンロードしてインストールします:
sudo yum -y install oracle-release-el7 sudo yum -y install oracle-instantclient19.3-basic
(すべてのInstant Clientパッケージのリストを確認する場合は、
http://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/index.html
にアクセスします。) -
その他のOSおよびアーキテクチャ:
-
Oracle Instant Clientのダウンロードページに移動し、システムのOSおよびアーキテクチャ用のダウンロードを選択します。
-
ダウンロード・ページで、Oracle Technology Network License Agreementに同意し、最新バージョンの基本パッケージをダウンロードしてから、ダウンロード・ページの下部にある指示に従ってインストールします。
-
node-oracledbのダウンロードとインストール
システムのOSおよびアーキテクチャ用のNode.js向けnode-oracledbアドオンをダウンロードしてインストールします:
-
Oracle Linux:
次のコマンドを実行して、最新バージョンのnode-oracledbをダウンロードしてインストールします:
sudo yum install -y oracle-release-el7 oracle-nodejs-release-el7 sudo yum install -y node-oracledb-node10
-
その他のOSおよびアーキテクチャ:
node-oracledbのインストール・ページに移動し、OSおよびアーキテクチャ用の「My database is on another machine」(別のマシン上にあるデータベース)の手順を選択して、アドオンのインストール手順を実行します。
データベースのクライアント資格証明のダウンロードとインストール
-
データベースのクライアント資格証明が含まれているzipファイルを、コンピュータ上のセキュアなディレクトリにダウンロードします。
このzipファイルは、Oracle Cloudコンソールのデータベースの「詳細」ページからダウンロードできます。 このページにアクセスできるOracle Cloudユーザー・アカウントがある場合は、次のように資格証明をダウンロードします。 そのようなアカウントがない場合は、zipファイルと、そのzipファイルを保護するために使用されたパスワードを、データベースの管理者から入手する必要があります。
-
WebブラウザでOracle Cloudにサインインし、JSON Databaseの「詳細」ページに移動します。
-
「DB接続」をクリックします。
-
「データベース接続」ページで、「ダウンロード」をクリックします。
-
「ウォレットのダウンロード」ダイアログで、「パスワード」フィールドにウォレット・パスワードを入力し、「パスワードの確認」フィールドでパスワードを確認します。
パスワードは8文字以上の長さで、少なくとも1つの文字と、1つの数字または1つの特殊文字を含める必要があります。
-
「ダウンロード」をクリックして、クライアント資格証明のzipファイルをセキュアなディレクトリに保存します。
-
-
zipファイルをダウンロードした後、これらのステップに従います:
-
クライアント資格証明のzipファイルを解凍します。
-
クライアント資格証明で提供される
sqlnet.ora
ファイルを編集し、"?/network/admin"
を、クライアント資格証明を解凍したディレクトリのフルパスに置き換えます。たとえば、次のように変更します:(DIRECTORY="?/network/admin")
変更後:
(DIRECTORY="/users/jdoe/adbcredentials")
-
TNS_ADMIN
環境変数を作成し、その値を、クライアント資格証明を解凍したディレクトリのフルパスに設定します。
-
データベース接続およびSQL文のコーディング
アプリケーションがデータベースを使用する際のパフォーマンスを最適化するには、これらのステップに従います。
-
node-oracledbアドオンへの依存性をアプリケーションの
package.json
ファイルに追加します。 -
高パフォーマンスが得られるように接続をコーディングします。
package.json
へのnode-oracledb依存性の追加
アプリケーションのpackage.json
ファイル内のdependencies
オブジェクトを編集し、oracledb
パッケージおよびバージョンを追加します。 (package.json
がない場合は、npm init
コマンドを使用して生成します。) たとえば:
. . .
"dependencies": {
. . .,
"oracledb": "^4.0",
. . .
},
. . .
dependencies
オブジェクトの詳細は、「npm-package.json」ページを参照してください。 インストール済のoracledb
バージョンを表示するには、npm list
コマンドを使用できます。たとえば:
npm list -g --depth=0
高パフォーマンスを得るための接続のコーディング
高パフォーマンスを実現するには、データベースに接続する際に次のガイドラインに従います。
- 接続プールを使用します。
- 実行する操作に最適な事前定義済データベース・サービスを使用します。 JSONデータの操作が目的である場合、トランザクション処理操作用の標準的なアプリケーション接続サービスであるtpサービスです。 事前定義済データベース・サービスの詳細は、「Oracle Autonomous Databaseサーバーレスの使用」の「Autonomous Transaction ProcessingおよびAutonomous JSON Databaseのデータベース・サービス名」を参照してください。
たとえば:
var oracledb = require('oracledb');
var config = {
user: process.env.NODE_ORACLEDB_USER || "ADMIN",
password: process.env.NODE_ORACLEDB_PASSWORD,
connectString : process.env.NODE_ORACLEDB_CONNECTIONSTRING || "mydb_tp",
poolMin: 10,
poolMax: 10,
poolIncrement: 0,
}
async function getCollection() {
oracledb.autoCommit = true;
await oracledb.createPool(config);
var conn = await oracledb.getConnection();
var soda = conn.getSodaDatabase();
var collection = await soda.createCollection('myCollection');
conn.close();
}
getCollection();
この例では、データベース・サービスtp
に接続するためのプールを作成します。
追加のリソース
node-oracledbの詳細は、APIリファレンスとユーザー・ガイドの両方が掲載された「node-oracledb」ドキュメント・ページを参照してください。
様々なnode-oracledb機能を示すコード例は、node-oracledb examplesフォルダを参照してください。