IFS write Dies ist das Ende des Codierungsbeispiels.
IfsWrite.JS
var jt400 = require("node-jt400");
var express = require("express");
var iconv = require('iconv-lite');
var app = express();
var pool = jt400.pool({ host: '192.168.X.XXX', user: 'MYUSER', password: 'MYPASS' });
var server = app.listen(8888, function () {
console.log("curl http://localhost:" + server.address().port + '/~');
});
app.get("/ifsWrite", function (req, res, next) {
var sqlReadableStream = pool.createReadStream("select * from member");
var ifs = pool.ifs();
var writer = ifs.createWriteStream("/myIfsFolder/node-write.txt", { append: true });
var buffer = "";
sqlReadableStream.on("data", function (chunk) {
buffer += chunk;
});
sqlReadableStream.on('end', function () {
writer.write(iconv.encode(buffer, "UTF-8"));
writer.end();
res.send(iconv.encode(buffer, "UTF-8"));
});
});
Ich habe das SQL-Ergebnis an IFS geschrieben.
Ich habe die Zeichen korrekt an die Konsole zurückgegeben, aber die Zeichen wurden in der IFS-Datei verstümmelt.
Die zu ändernde Quelle ist \ java \ src \ nodejt400 \ IfsWriteStream.java. Der folgende Code befindet sich in Zeile 29.
IfsWriteStream.java
fos = new IFSFileOutputStream(file, IFSFileOutputStream.SHARE_ALL, append);
Geben Sie die Codepage an. (Diesmal UTF-8)
IfsWriteStream.java
fos = new IFSFileOutputStream(file, IFSFileOutputStream.SHARE_ALL, append, 1208);
Wenn der Build erfolgreich ist, ersetzen Sie jt400wrap.jar und versuchen Sie es erneut.
Es wäre schön, wenn es parametrisiert werden könnte, aber ich habe noch nicht so viel Wissen ...
Das Poster übernimmt keine Verantwortung für die Änderung der Quelle. Bitte tun Sie dies auf eigenes Risiko.
Hinzugefügt am 28. Dezember 2017 Ich habe die vorgefertigte Datei jt400wrap.jar hier abgelegt [https://github.com/ymurata1967/node-jt400/releases/).
Recommended Posts