今更だけど 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 から
basiclite
とSDK
をダウンロードして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で書いておけばロジックの部分はサーバーでもクライアントでも良くなるっていうのは、もしかしたらいいことなのかも。