The Big Picture - screenly/anthias - Express

Express is a popular and fast, unopinionated web framework for Node.js, used for creating web applications and APIs. In this guide, we will explain why Express is used in the context of a Screenly/Anthias project and provide an example of how to get started with it.


The latest version of Express is 4.19.2, and it was last published a month ago. There are currently 79,207 other projects in the npm registry using Express. You can install it by running npm i express.

Express is available through the npm registry, and its repository is located at

Why Use Express in a Screenly/Anthias Project?

Express is a popular choice for building web applications and APIs due to its robust routing, focus on high performance, and super-high test coverage. It also provides HTTP helpers, content negotiation, and a view system supporting 14+ template engines. Express is unopinionated, meaning it doesn't force you to use any specific ORM or template engine.

In the context of a Screenly/Anthias project, Express can be used to create the backend API for managing and controlling the Screenly displays.

Getting Started

To get started with Express in a Screenly/Anthias project, first, make sure you have Node.js installed (version 0.10 or higher). If this is a new project, create a package.json file using the npm init command.

Installation is done using the npm install command:

$ npm install express

Now, let's create a simple Express application for managing Screenly displays:

const express = require('express')
const app = express()

// Define a route for getting information about all displays
app.get('/displays', function (req, res) {
  // Fetch information about all displays from the database or another data source
  // and send it as a JSON response

// Define a route for controlling a specific display
app.put('/displays/:id', function (req, res) {
  const id =
  const command = req.body.command // e.g., 'restart'

  // Send the command to the Screenly display with the given ID
  // and send a JSON response indicating the result


Save this code in a file named app.js. To run the application, use the following command:

$ node app.js

Your application is now running on http://localhost:3000.


Express offers the following features:

  • Robust routing
  • High performance
  • Super-high test coverage
  • HTTP helpers (redirection, caching, etc.)
  • View system supporting 14+ template engines
  • Content negotiation
  • Executable for generating applications quickly

Documentation & Community

For more information, visit the Express website and documentation. You can also join the #express channel on Libera Chat IRC, or check out the GitHub Organization for Official Middleware & Modules.

Quick Start

To quickly get started with Express in a Screenly/Anthias project, you can use the express(1) executable to generate an application:

$ npm install -g express-generator@4
$ express /tmp/foo && cd /tmp/foo
$ npm install
$ npm start

Your application will be available at http://localhost:3000.


Express follows the philosophy of providing small, robust tooling for HTTP servers, making it a great solution for single page applications, websites, hybrids, or public HTTP APIs.


To view the examples, clone the Express repo and install the dependencies:

$ git clone --depth 1
$ cd express
$ npm install
$ node examples/content-negotiation


The Express.js project welcomes all constructive contributions. For more technical details on contributing, see the Contributing Guide.

Security Issues

If you discover a security vulnerability in Express, please see the Security Policies and Procedures.

Running Tests

To run the test suite, first, install the dependencies, then run npm test:

$ git clone --depth 1
$ cd express
$ npm install
$ npm test