Chapter 6. Developing and deploying a Node.js application
In addition to using an example, you can create new Node.js applications from scratch and deploy them to OpenShift.
6.1. Developing a Node.js application Copy linkLink copied to clipboard!
For a basic Node.js application, you must create a JavaScript file containing Node.js methods.
Prerequisites
-
npm
installed.
Procedure
Create a new directory
myApp
, and navigate to it.mkdir myApp cd MyApp
$ mkdir myApp $ cd MyApp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow This is the root directory for the application.
Initialize your application with
npm
.The rest of this example assumes the entry point is
app.js
, which you are prompted to set when runningnpm init
.cd myApp npm init
$ cd myApp $ npm init
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the entry point in a new file called
app.js
.Example
app.js
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Start your application.
node app.js
$ node app.js Server running at http://localhost:8080
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Using
curl
or your browser, verify your application is running athttp://localhost:8080
.curl http://localhost:8080
$ curl http://localhost:8080 {"content":"Hello, World!"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Additional information
- The Node.js runtime provides the core Node.js API which is documented in the Node.js API documentation.
6.2. Deploying a Node.js application to Openshift Copy linkLink copied to clipboard!
To deploy your Node.js application to OpenShift, add nodeshift
to the application, configure the package.json
file and then deploy using nodeshift
.
6.2.1. Preparing Node.js application for OpenShift deployment Copy linkLink copied to clipboard!
To prepare a Node.js application for OpenShift deployment, you must perform the following steps:
-
Add
nodeshift
to the application. -
Add
openshift
andstart
entries to thepackage.json
file.
Prerequisites
-
npm
installed.
Procedure
Add
nodeshift
to your application.npm install nodeshift --save-dev
$ npm install nodeshift --save-dev
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Add the
openshift
andstart
entries to thescripts
section inpackage.json
.Copy to Clipboard Copied! Toggle word wrap Toggle overflow The
openshift
script usesnodeshift
to deploy the application to OpenShift.NoteUniversal base images and RHEL images are available for Node.js. See the Node.js release notes for more information on image names.
Optional: Add a
files
section inpackage.json
.Copy to Clipboard Copied! Toggle word wrap Toggle overflow The
files
section tellsnodeshift
what files and directories to include when deploying to OpenShift.nodeshift
uses thenode-tar
module to create a tar file based on the files and directories you list in thefiles
section. This tar file is used whennodeshift
deploys your application to OpenShift. If thefiles
section is not specified,nodeshift
will send the entire current directory, excluding:-
node_modules/
-
.git/
tmp/
It is recommended that you include a
files
section inpackage.json
to avoid including unnecessary files when deploying to OpenShift.
-
6.2.2. Deploying a Node.js application to OpenShift Copy linkLink copied to clipboard!
You can deploy a Node.js application to OpenShift using nodeshift
.
Prerequisites
-
The
oc
CLI client installed. -
npm
installed. - Ensure all the ports used by your application are correctly exposed when configuring your routes.
Procedure
Log in to your OpenShift instance with the
oc
client.oc login ...
$ oc login ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Use
nodeshift
to deploy the application to OpenShift.npm run openshift
$ npm run openshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3. Deploying a Node.js application to stand-alone Red Hat Enterprise Linux Copy linkLink copied to clipboard!
You can deploy a Node.js application to stand-alone Red Hat Enterprise Linux using npm
.
Prerequisites
- A Node.js application.
- npm 6.4.1 installed
- RHEL 7 or RHEL 8 installed.
- Node.js installed
Procedure
If you have specified additional dependencies in the
package.json
file of your project, ensure that you install them before running your applications.npm install
$ npm install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Deploy the application from the application’s root directory.
node app.js
$ node app.js Server running at http://localhost:8080
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Verification steps
Use
curl
or your browser to verify your application is running athttp://localhost:8080
curl http://localhost:8080
$ curl http://localhost:8080
Copy to Clipboard Copied! Toggle word wrap Toggle overflow