@dollarshaveclub/nodejs-server
v2.10.0
Published
[![CircleCI](https://circleci.com/gh/dollarshaveclub/nodejs-server/tree/master.svg?style=svg&circle-token=850fd443c919134e53254d3ab098b02f085722fe)](https://circleci.com/gh/dollarshaveclub/nodejs-server/tree/master) [![codecov](https://codecov.io/gh/dolla
Downloads
15
Keywords
Readme
Node.js Server
This is the main server to be used in all of Dollar Shave Club's node.js applications.
Features
- Graceful shutdown
- Health checks via
GET /ping
- Supports both Express and Koa
- Datadog metrics
- Rollbar
Environment Variables
NODE_ENV=development
PORT
orLISTEN_PORT
SOCKET_TIMEOUT_SECONDS=120
GRACEFUL_SHUTDOWN_TIMEOUT_SECONDS=15
ROLLBAR_POST_SERVER_ITEM_ACCESS_TOKEN
- access token for server-side rollbar
Usage
API
serve(app, [options])
Options:
name
- name of the repoport
socketTimeout
gracefulShutdownTimeout
rollbarPostServerItemAccessToken
For development only:
proxy = false
- whether to proxy requestsproxyHostname = process.env.PROXY_HOSTNAME || release.dollarshaveclub.com
- what server to proxyproxyMatch = /^\/(api|cms|face-assets)\//
- regex to match paths to proxy
To support proxying locally and internationally, add the following to your /etc/hosts
:
::1 localhost # should have already been added
::1 localhost.au
::1 localhost.ca
::1 localhost.uk
Express
const serve = require('@dollarshaveclub/nodejs-server')
const app = require('express')()
// app logic
serve(app, {
name: 'my-app',
}).then(({ port }) => {
console.log(port)
})
Koa
const serve = require('@dollarshaveclub/nodejs-server')
const Koa = require('koa')
const app = new Koa()
// app logic
serve(app, {
name: 'my-app'
})
Typescript w/ Koa
import serve from "@dollarshaveclub/nodejs-server"
await serve(new Koa(), {name: "my-app"})