Node.js is a server-side JavaScript runtime for rapidly building innovative applications. Over the last 7 years, Node.js has grown in popularity and is now used by developers, ranging from hobbyists to university students, through to production developers in start-ups to large enterprise. Key to the success of Node.js is the over 500,000 packages available* in the Node Package Manager (npm) repository, allowing application developers to compose new applications quickly, using community shared code. This hugely versatile platform is available to a wide range of operating systems, and on most cloud services environments, including IBM Bluemix.

Node.js for z/OS

Today, IBM announced the IBM SDK for Node.js – z/OS, V6.0, bringing Node.js to z/OS. IBM SDK for Node.js – z/OS allows application developers, regardless of experience with IBM Z, to develop new and innovative applications on the popular Node.js platform, and run them supported by the qualities of service of IBM Z, and alongside the Systems of Record that underpin your business.

A great example of connecting new applications and Systems of Record is by interacting with z/OS assets that are exposed through IBM z/OS Connect EE. Using the dynamically-created Swagger OpenAPI documentation, a developer can learn what assets are available, try them out, and use this insight to develop Node.js applications to use the APIs.

Node.js and CICS

Node.js and CICS

As a quick demonstration of a Node.js application interacting with an existing z/OS assets – in this case, CICS programs – we’ve provided some new samples. These are provided as-is, as a way to explore the potential of Node.js and IBM Z.

The samples include a Node.js module that allows a Node.js application hosted in z/OS batch to interact with CICS over the External CICS Interface (EXCI). This node module can be used to invoke CICS programs over EXCI, passing data using CICS channels and containers. A developer or systems programmer can then write simple scripting programs using JavaScript, or more advanced Node.js applications which include invoking CICS programs.

We also provide a sample application that uses the EXCI node module with some other popular node packages, such as Angular.js to provide the user interface. You can check this out on GitHub here:

Node.js sample app architecture
Node.js sample app architecture

The architecture of the sample application demonstrates the power of Node.js in creating end-to-end Systems of Engagement applications. The sample uses Angular.js and jQuery to interact with Systems of Engagement business logic to create powerful, and reactive JavaScript user interfaces, able to dynamically update the user interface with data returned from the server, without reloading the entire web page.

Sample app screenshot
Sample app screenshot

Getting started with the samples

The code for this sample node, called cics-exci, is available on – Follow the Installation instructions on the README for this GitHub repository to install the module.

Note: the cics-exci node module uses CICS channels and containers to pass data to and from CICS. CICS channels and containers over EXCI was introduced in CICS TS V5.4, therefore you need to have downloaded, installed and be using the SDFHEXCI load library running the node module. You can however still run this against a pre-V5.4 region.

The code for the sample application is also in GitHub:, along with Installation instructions.

IBM SDK for Node.js for z/OS will become generally available on September 8 2017, but until then you’ll need the IBM SDK for Node.js for z/OS beta from to use these samples.

Tell us more

These samples give you a simple taste of Node.js on z/OS, interacting with CICS. We’re interested in your feedback on these and we’d also like to hear what other types of applications you want to build on z/OS. Please comment here, or contact me at to discuss.

* figures taken on 10 July 2017 from

Join The Discussion

Your email address will not be published. Required fields are marked *