1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IBM i (AS/400)のPASE環境でnode.jsを動かす方法 [DB2接続編] (3/4)

Last updated at Posted at 2018-07-17

nodejsi.png

#1.DB2接続の準備
Node.jsのDB2iアドオンは、IBM iでDB2データベース操作に設定されるJavaScript APIです。それは、DB2 CLI APIに基づきます。次のパスにそのアドオンが存在します。

パス:/QOpenSys/QIBM/ProdData/Node/os400/db2i

DB2アドオンには、上記フォルダーに含まれるdb2.jsが必要です。

###【スクリプトセットの確認】
DB2アドオンに必要なdb2.jsが存在していることを確認
nodejs03_01.png

###【IBM i設定の確認】
接続するRDBディレクトリ項目名を確認します。必要であれば、RDBディレクトリ項目の設定を行います。Nodejsを実行するIBM i上のDB2にアクセスする場合は、NodejsのコーディングでDB名に*LOCALを指定して接続が可能です。
nodejs03_02.png

#2.Javaスクリプトの準備
##物理ファイルQIWS/QCUSTCDTのデータを参照・表示するJavaScriptを作成
###【JavaScriptの編集】
テキストエディターでJavaScriptを編集後、UTF-8で「sample.js」と名前を付けて保存

hello.js
var http = require('http');
var db = require('/QOpenSys/QIBM/ProdData/Node/os400/db2i/lib/db2');
http.createServer(function (req, res) {
     db.init();
     db.conn("*LOCAL");
     db.exec("SELECT LSTNAM, STATE FROM QIWS.QCUSTCDT", function(rs) {
                 res.writeHead(200, {'Content-Type': 'text/plain'});
                 res.end(JSON.stringify(rs));
     });
     db.close();
}).listen(8082, '192.168.1.7');
console.log('Server running at http://192.168.1.7:8082/');

###【FTP転送】
先にIBM iに作成済みの/home/nodeフォルダーへ「sample.js」をFTP転送
nodejs03_04.png

#3.JavaScriptの実行
##「sample.js」JavaScriptを実行して動作確認
###【実行コマンド】

CALL QP2TERM
cd /QOpenSys/QIBM/ProdData/Node/bin
node /home/node/sample.js

nodejs03_07.png

###【実行結果】
ソース上で指定したIPアドレスとポートでWebブラウザからアクセスした物理ファイルから意図する結果が得られたことから正しく動作しているといえます。
nodejs03_08.png

この記事を読んでいただいてありがとうございます!

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?