express-pants
v1.1.2
Published
A semi-opinionated way to setup Express apps
Downloads
7
Readme
Some nice pants for your Express App to wear
A semi-opinionated framework for setting up Express apps.
Install
$ npm install --save express-pants
Usage
const createApp = require('express-pants')
const runApp = createApp((app, opts = {}) => {
// Handle app errors
app.on('error', console.error)
// Load in your routes
app.get('/', (req, res) => {
res.send(`Hello ${opts.message}!`)
})
})
// Start the app
runApp({
port: 8080,
message: 'World'
}).then(({ app, server }) => {
const addr = server.address()
// Log is a Pino logger
app.get('log').info(`Server started at http://${app.get('host')}:${addr.port}`)
})
What does it do?
This package sets up common requirements for running an Express app in production with the goal of reducing boilerplate in your applications. Here is a list of some of those things:
- Uses next gen Express (
5.0.0-alpha.7
at the time of publishing this)- See the GitHub PR for 5.0 for details
- New and improved
path-to-regex
- Router with basic promise support
- Express app settings
- Remove
x-powered-by
header - Sets query string parsing to
simple
(faster, more secure, planned default for 5.0)
- Remove
- Set process title (nice for identifying your server process)
- Catch, report and exit on
uncaughtException
andunhandledRejection
- Handle and report server
clientError
s - Parses JSON bodies
- Parses cookies (off by default, turn on by passing
options.parseCookies
) - Helmet (turned off by default, but turn on with
options.helmet
) - Pino logging with
pino-http