Skip to content

trailsjs/trailpack-express

Repository files navigation

trailpack-express

📦 Express Trailpack

Gitter NPM version Linux + OSX Build Status Code Climate Follow @trailsjs on Twitter

This pack binds the routes compiled in trailpack-router to an Express Server.

Install

$ npm install --save trailpack-express

Compatibility

This Trailpack is compatible with Express v4 and v5.

Express v4

$ npm install --save express@^4

Express v5

$ npm install --save express@^5.0.0-alpha.2

Usage

Load in your trailpack config.

// config/main.js
module.exports = {
  // ...
  packs: [
    require('trailpack-core'),
    require('trailpack-router'),
    require('trailpack-express')
  ]
}

Static assets

// config/main.js
module.exports = {
  // ...
  paths: {
    ...
    www: path.resolve(__dirname, '..', 'public')
    ...
  }
}

View Config

Choose a template engine.

// config/views.js
module.exports = {
  engine: 'pug'
}

Then simply write your views in a directory called 'views'!

Configuration

See config/web.js for a full example.

express

Require field to set express version to use by setting express: require('express')

cors

Optional field to configure CORS, can be a boolean or an object (see https://github.com/expressjs/cors#configuring-cors)

port

The port to listen on. 3000 by default. Can also be set via the PORT environment variable.

host

The hostname of the server.

cache

The number of seconds to cache flat files on disk being served by Express

externalConfig

external configuration for your express app (can be used for configuring letsencrypt)

ssl

SSL options (key, cert or pfx) to allow set https protocol

redirectToHttps

Automatically redirect HTTP request to HTTPS if ssl enabled

portHttp

The port to listen for http protocol if ssl enabled. If you don't want http and https, don't add this field.

middlewares

Object to add custom middleware functions to Express, don't forget to add them into middlewares.order or they will not be called

init

Method to customize express instance

Contributing

We love contributions! Please check out our Contributor's Guide for more information on how our projects are organized and how to get started.

License

MIT