node-jt400って?
jt400をnode.jsで使用するラッパーです。jt400で接続可能なIBMi(AS400)なら動きそうです。
テストした環境のバージョン
IBM i:V5R4
開発PC:Windows10Pro64bit
node.js:6.9.1
npm:3.10.9
java:1.8.0_71
node-jt400:1.4.1
node.jsの開発環境(Windows)
この手順を参考にさせてもらい、構築しました。これらをやらないとnpm installでビルドエラーが出ます。
(なお、Macだとすんなりnpm installできました。)
インストール
mkdir myfolder
cd myfolder
npm init -y
npm install node-jt400
npm install express
参考までに、node-jt400でインストールされるモジュールです。
-- node-jt400@1.4.1
+-- flushwritable@1.0.0
+-- java@0.8.0
| +-- async@2.0.1
| +-- find-java-home@0.1.3
| | `-- which@1.0.9
| +-- glob@7.1.1
| | +-- fs.realpath@1.0.0
| | +-- inflight@1.0.6
| | | `-- wrappy@1.0.2
| | +-- inherits@2.0.3
| | +-- minimatch@3.0.4
| | | `-- brace-expansion@1.1.8
| | | +-- balanced-match@1.0.0
| | | `-- concat-map@0.0.1
| | +-- once@1.4.0
| | `-- path-is-absolute@1.0.1
| +-- lodash@4.16.4
| `-- nan@2.4.0
+-- JSONStream@1.0.7
| +-- jsonparse@1.3.1
| `-- through@2.3.8
`-- q@1.4.1
expressは稼働確認をしやすくするために使用しているだけで、本編とは関係ありません。
以上でPC側の開発環境は終了です。
IBMi(AS400)側の準備
テストで使用する物理ファイルとテストデータ
MYLIB/MEMBER.PF
*****************************************************************
* ファイルID : MEMBER
*****************************************************************
A R MEMBERR TEXT(' メンバー ')
*
A ID 3S 0 COLHDG(' ID ')
A LNAME 12J COLHDG(' 苗字 ')
A FNAME 6G COLHDG(' 名前 ')
A PROF 40O COLHDG(' プロフィール ')
A TOKUTEN 7P 3 COLHDG(' 得点 ')
INSERT INTO MYLIB.MEMBER VALUES(100,'漢字','太郎','漢字のみ',1000);
INSERT INTO MYLIB.MEMBER VALUES(101,'半角','カ ナ','ア イ ウ エ オ',50.555);
INSERT INTO MYLIB.MEMBER VALUES(102,'英数','小文字','abcDEF!',-100);
INSERT INTO MYLIB.MEMBER VALUES(103,'特殊','文字','①髙㈱Ⅳ~',.01);
INSERT INTO MYLIB.MEMBER VALUES(104,'漢字','混在','aiuあいうアイウ',-15.25);
IBMiのサインオンするユーザーのCCSIDは5035にしており、物理ファイルも5035で作成しています。
Open Source Technologies(5733-OPS)を導入せず、nodeで接続できるのはなかなか面白いですね。