1. Home
  2. Guides
  3. Installing Express
  1. Home
  2. Node
  3. Installing Express

Installing Express

Overview

Express is a Node.js framework inspired by Sinatra for Ruby: it’s based on minimalism with a penchant for performance. Express is part of the MEAN fullstack: MongoDB, Express, Angular.js, and Node.js. MongoDB may be setup in a separate guide.

Express is supported on all v6+ platforms using Passenger to manage isolated processes.

Quickstart

All steps are done from the terminal:

  1. PREREQUISITE: create a Passenger-compatible filesystem layout
    • In this example, our app will reside in /var/www/express. The filesystem layout looks like:
      express
      ├── app.js
      ├── public
      │   └── .htaccess
      └── tmp
  2. From the root directory, /var/www/express, install Express locally with npm:
    • npm install express
  3. Now create a startup file named app.js within express/. Copy and paste the following as a sample application in the root folder:
    var express = require('express')
    var app = express()
    
    app.get('/', function (req, res) {
     res.send('Hello World!');
    })
    
    var server = app.listen(3000, function () {
     var host = server.address().address
     var port = server.address().port
    
     console.log('Example app listening at http://%s:%s', host, port)
    })
  4. Inform Passenger that the app should be launched as Node.js application
    echo "PassengerNodejs /usr/bin/node" > public/.htaccess
  5. Lastly, connect public/ to a subdomain within the control panel
  6. Enjoy!

Using Express Generator

Express Generator is a separate application to facilitate filesystem creation for an app. It may be installed separately from npm:

npm install -g express-generator

Now run express <appname> where appname is a new app to create, e.g. cd /var/www && express express to create a new app located in /var/www/express. The application, express, will scaffold a new filesystem layout that is compatible with Passenger.

Change directories to the newly-created app root, and run npm install to install dependencies.

Note: astute readers will note that npm is invoked first without -g, then with -g. -g is a flag that installs the package globally in /usr/local. In certain situations, where an application is loosely-coupled and serves no integral function, placing it under /usr/local would be better so that binaries are picked up under /usr/local/bin.

Important: once generated the startup file is located as bin/www. app.js is a separate application launched after initialization. To make this work with Passenger, add PassengerStartupFile www/bin to .htaccess in public/.

See also

Updated on July 8, 2019

Was this article helpful?

Related Articles

Need Support?
Can’t find the answer you’re looking for? Don’t worry we’re here to help! If you get an error, visit https://lithiumhosting.com/support instead.
Contact Support