npm i express-middleware --save
- Available: Request Id, Child logger, JWT Token and HTTP Access logger
- Todo: JWT decoder, Error handler, ...
Force SSL redirection. Options object is optional. Two possibilities to disable redirection :
- set environment variable DISABLE_SSL_REDIRECT to
true
- add
disable
totrue
in setup options.
const sslRedirect = require('express-middleware').sslRedirect;
app.use(sslRedirect(options));
Middleware dependency : None
Add or append the request id to the req
object.
const requestId = require('express-middleware').requestId;
app.use(requestId());
Middleware dependency : None
Create a child logger and append it to the req
object. Logger must be a bunyan instance (with the method child
).
const childLogger = require('express-middleware').childLogger;
app.use(childLogger(logger));
Middleware dependency : Request Id (optional)
Append the token from header or query param to the req
object.
Query param format is token=<mytoken>
and header format is Authorization: Bearer <mytoken>
.
const jwtToken = require('express-middleware').jwtToken;
app.use(jwtToken());
Middleware dependency : None
Log http access properties for each request (like Apache httpd) in JSON format.
const httpAccessLogger = require('express-middleware').httpAccessLogger;
app.use(httpAccessLogger(opts));
Middleware dependency : Child logger (optional if options are overridden), Request Id (optional), JWT Token (optional)
Set req.language
according to the Accpet-Language
header
opts.languages
is a mandatory array, it must contains at least one language.
const language = require('express-middleware').language;
app.use(language(opts));
Middleware dependency : None
Parse i18n data in req.body
using req.language
value
const i18n = require('express-middleware').i18n;
app.use(i18n());
Middleware dependency : Language middleware
Force IP address validation before accepting a request.
- set environment variable IP_BLACKLIST to be a list of comma separated IP addresses
const ipBlacklist = require('express-middleware').blacklistIPs;
app.use(ipBlacklist());
Middleware dependency : None
npm test # start test suites (coverage + lint + mocha)
npm run coverage # run the code coverage tool
npm run coverage-html # run the code coverage tool with html report
npm run lint # execute linter tool
npm run mocha # run the tests