COBOL bridge for NodeJS which allows you to run COBOL code from NodeJS.
Of course, you can! It's production ready! If you ever did such a thing, ping me (@IonicaBizau). 💥 💫
Currently GNUCobol is required. If you are using a debian-based distribution you can install it using:
$ sudo apt-get install open-cobol
It would be interesting to fallback into a COBOL compiler written in NodeJS. Contributions are welcome! 😄
Then, install the cobol
package.
$ npm i cobol
This project seems to more popular than I expected. 😄 If you wrote or found an article about this project which is not added in this list, add it.
- Calling 1959 from your Web code: A COBOL bridge for Node.js (ArsTechnica, by Sean Gallagher)
- Cobol -- yes, Cobol -- gets a bridge to Node.js (InfoWorld, by Paul Krill)
// Dependencies
var Cobol = require("cobol");
// Execute some COBOL snippets
Cobol(function () { /*
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.
PROGRAM-BEGIN.
DISPLAY "Hello world".
PROGRAM-DONE.
STOP RUN.
*/ }, function (err, data) {
console.log(err || data);
});
// => "Hello World"
Cobol(__dirname + "/args.cbl", {
args: ["Alice"]
}, function (err, data) {
console.log(err || data);
});
// => "Your name is: Alice"
// This will read data from stdin
Cobol(function () { /*
IDENTIFICATION DIVISION.
PROGRAM-ID. APP.
*> http://stackoverflow.com/q/938760/1420197
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT SYSIN ASSIGN TO KEYBOARD ORGANIZATION LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD SYSIN.
01 ln PIC X(64).
88 EOF VALUE HIGH-VALUES.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
DISPLAY "Write something and then press the <Enter> key"
OPEN INPUT SYSIN
READ SYSIN
AT END SET EOF TO TRUE
END-READ
PERFORM UNTIL EOF
DISPLAY "You wrote: ", ln
DISPLAY "------------"
READ SYSIN
AT END SET EOF TO TRUE
END-READ
END-PERFORM
CLOSE SYSIN
STOP RUN.
*/ }, {
stdin: process.stdin
, stdout: process.stdout
}, function (err) {
if (err) {
console.log(err);
}
});
// => Write something and then press the <Enter> key
// <= Hi there!
// => You wrote: Hi there!
// => ------------
Runs COBOL code from Node.JS side.
- Function|String|Path
input
: A function containing a comment with inline COBOL code, the cobol code itself or a path to a COBOL file. - Object
options
: An object containing the following fields: cwd
(String): Where the COBOL code will run (by default in the current working directory)args
(Array): An array of strings to pass to the COBOL process.stdin
(Stream): An optional stdin stream used to pipe data to the stdin stream of the COBOL process.stderr
(Stream): An optional stderr stream used to pipe data to the stdin stream of the COBOL process.stdeout
(Stream): An optional stdout stream used to pipe data to the stdin stream of the COBOL process.- Function
callback
: The callback function called witherr
,stdout
andstderr
.
Have an idea? Found a bug? See how to contribute.
KINDLY © Ionică Bizău–The LICENSE file contains a copy of the license.
Heading image source–Thanks! 🍰