IBM i (AS/400)のPASE環境でnode.jsを動かす方法 [IBM i Native Objectアクセス編] (4/4)

nodejsi

JavaScriptの準備

IBM i Native ObjectをアクセスするJavaScriptを作成して動作確認

【Javaスクリプトの編集】
テキストエディターでJavaScriptを編集後、UTF-8で「sample2.js」と名前を付けて保存

var http = require('http');
var db = require('/QOpenSys/QIBM/ProdData/Node/os400/db2i/lib/db2');
var xt = require('/QOpenSys/QIBM/ProdData/Node/os400/xstoolkit/lib/itoolkit');
var pd = require('/QOpenSys/QIBM/ProdData/Node/os400/xstoolkit/lib/iprod');
var prod = new pd.iProd(new xt.iConn("S6515E9A"));
var prodInfo = prod.getProductInfo("5770DG1");
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
db.init();
db.conn("S6515E9A");
db.exec("SELECT LSTNAM, STATE FROM QIWS.QCUSTCDT", function(rs) {
res.write("Product ID:" + prodInfo["Product_ID"] + "\n");
res.write("Release level:" + prodInfo["Release_level"] + "\n");
res.write("Load State:" + prodInfo["Symbolic_load_state"] + "\n");
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フォルダーへ「sample2.js」をFTP転送
nodejs04_02

JavaScriptの実行

「sample2.js」JavaScriptを実行して動作確認

【実行コマンド】

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

nodejs04_05

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

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

The following two tabs change content below.
IBM i (AS/400)のオープン化を中心にサービスを提供するシステム開発会社。最近は、IBM i 上のPHPによる受託開発が多いですが、ソリューションやウェブサービスも順次リリースしていこうと思ってます。 https://www.omni-s.co.jp/