Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

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

ibmi
IBM i (AS/400) 上のオープン技術を推進するエンジニアコミュニティ
http://i5php.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away