Skip to content
This repository was archived by the owner on Jul 22, 2024. It is now read-only.

IBM/expressjs-openwhisk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This project shows how to deploy new and existing Express.js applications to OpenWhisk. This tutorial takes less then 5 minutes to complete.

Prerequisites

  • Apache OpenWhisk
  • node.js
  • IBM Cloud account

Steps

  1. Create new Express.js application
  2. Change relative paths
  3. Create OpenWhisk action
  4. Deploy application
  5. Test application

1. Create new Express.js application

Open a terminal, and type

$ npm install express-generator -g
$ express --view=pug myexpressapp
$ cd myexpressapp
$ npm install 

This creates a minimal Express.js application. To check it is working, start the application by typing the command npm start and load http://localhost:3000 in a browser.

2. Change relative paths

The generated Express.js application expects resources to be installed in the domain root folder but by default Apache OpenWhisk web actions are served from a sub-directory.

Change views/layout.pug:

doctype html
html
  head
    title= title
    if baseurl
      base(href=baseurl)
    link(rel='stylesheet', href='stylesheets/style.css')
  body
    block content

3. Create OpenWhisk action

Add expressjs-openwhisk module dependency in your project.

$ npm install expressjs-openwhisk --save

Then create the Apache OpenWhisk action handling Web requests by forwarding them to expressjs-openwhisk. Create a file named action.js with this content:

const app = require('./app');
const forward = require('expressjs-openwhisk')(app);

function main(request) {
  return forward(request);
}

exports.main = main;

In package.json, add the following entry:

{
   "main": "action.js",
   ...
}

4. Deploy application

To deploy the application and dependencies on IBM Cloud, do:

$ zip -r app.zip .
$ wsk action update express app.zip --kind nodejs:6 --web raw \
    -p baseurl https://openwhisk.ng.bluemix.net/api/v1/web/<org>_<space>/default/express/

Replace <org> and <space> by your IBM Cloud organization and space, respectively.

5. Test application

And finally test the application by opening https://openwhisk.ng.bluemix.net/api/v1/web/<org>_<space>/default/express in a browser

License

Apache 2.0

About

Apache OpenWhisk Web action redirecting request to Express.js applications

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •