[2016-05-03 追記] 以下情報は古いです。新しいエントリはこちらへ
引き続きNode.js弄り。Oracle DBに繫いでみる。
Web系の人が多いのかNode.jsでのDB接続について調べてみるとMySQLだったりMongoだったりの例が多い様子。ただ手元で丁度動いてるのがOracle君だったので彼に繫いでみる。
Nodeの環境は下な感じで。
- Ubuntu Server 14.04.3 LTS
- Node.js v5.0.0
一方のDB側。
node-oracledb 1.3導入
Oracleが公開しているドライバ。INSTALL.mdがとても親切 (但し後述の通り本家ではなくforkされた版をインストールする)。
Step Ⅰ: Instant Clientインストール
node-oracledbはOracleのクライアント・ライブラリに依存しているらしい。既にOracle ClientやDB本体がインストールされてるホストならばこの作業は不要。My little UbuntuはOracleの味を知らない。機能毎に最低限のモジュールを集めたInstant Clientを入れてあげる。
- oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
- oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
sudo alien oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
sudo alien oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
sudo dpkg -i oracle-instantclient12.1-basic_12.1.0.2.0-2_amd64.deb oracle-instantclient12.1-devel_12.1.0.2.0-2_amd64.deb
Step Ⅱ: node-oracledbインストール
前準備も終わったということで意気揚々とnode-oracledbをnpm installするとコケる。
Issuesを漁って辿り着いたのがBigous/node-oracledbというfork。NANとかいうadd-on用ライブラリについて色々書いてあったのですがよく解りませんでした (正直)。
NANがナンなのかについては宿題にするとして、まずは動く環境作りを優先。
適当な場所に落っことして解凍したらその中でnpm install。
wget https://github.com/Bigous/node-oracledb/archive/master.zip -O node-oracledb.zip unzip node-oracledb.zip cd node-oracledb-master/ npm install -g
Step Ⅲ: 動作確認
examplesの中で一番シンプルそうな名前のconnect.jsを使ってちゃんとOracleに接続出来るか確認する。
connect.jsと同じディレクトリに接続情報をdbconfig.jsという名前で作成。
module.exports = { user: 'xxxxxxxx', password: 'xxxxxxxx', connectString: '192.168.1.3/XE' };
起動。
node connect.js
コンソールに「Connection was successful!」と吐かれたらおめでとう。
他のexamplesのコードを見ると大体のデータ操作について網羅されている様子。色々試してみましょ。