iPhoneで Grafanaの グラフを 参照できる アプリ Grafanizer 作ってます。 詳しくは こちらへ

会社で使う開発言語を統合してみようという話から、Node.jsでOracleに接続するまで

Feb 13, 2014  
#node.js #env #oracle

今更だけど Rhino on Rails を読む機会があったので、車内で使ってる言語を統一してみようと思い立った。

現在利用している言語は、VisualBasic, VBA, SQL, Perl, Javascript あたりを使っているけど、VB(基幹システム), VBA(帳票関係), SQL(Oracle) はどうしても変えることが出来ない。でも、各種Webサービスで使ってるPerlと各種WebサービスやChrome拡張のJavascriptは Node.js を使えばどうにかなるんじゃないかなとか。

ということで、会社で使うならOracleへの接続が必須なので、そこら辺を試してみた。結果的には特に問題なく使える! (最初はインストール済みのOCIを利用しようとしてハマったけど、Instantclient入れれば一発だった)

Node.jsが入っていればわずか4ステップ!(VSExpressとInstantClientはでかいから結構手間だけど)

  • InstantClient Downloads から basicliteSDK をダウンロードして C:\ に展開
  • VisualStudio Downloads から Visual Studio Express 2013 for Windows Desktop をダウンロードしてインストール
  • node-oracle INSTALL のページの通りに環境変数を設定
  • npm install oracle --msvs_version=2012 を実行してインストール

うまく動くかどうかは以下のスクリプトで確認出来る。

var oracle = require('oracle');

var connectData = {
    tns: 'SID',
    user: 'SCOTT',
    password: 'TIGER'
};

oracle.connect(connectData, function(err, connection) {
    if (err) { console.log("Error connecting to db:", err); return; }

    var sql = 'select systimestamp from dual';
    connection.execute(sql, [], function(err, results) {
        if (err) { console.log("Error executing query:", err); return; }

        console.log(results);
        connection.close();
    });
});

データも何も指定することなくJSONっていうのもありがたい。

[ { SYSTIMESTAMP: Fri Feb 14 2014 02:26:25 GMT+0900 (東京 (標準時)) } ]

最近のWebサービスは簡単なHTMLとJSONファイル配信してクライアントでフォーマットするケースが多いから、うちの環境でサーバー側がPerlである必要っていうのも余りなくなってきた感じがする。 JSで書いておけばロジックの部分はサーバーでもクライアントでも良くなるっていうのは、もしかしたらいいことなのかも。