Install
npm i express-middleware --save
Middlewares
- Available: Request Id, Child logger, JWT Token and HTTP Access logger
- Todo: JWT decoder, Error handler, ...
SSL Redirect
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 = sslRedirect;app;
Middleware dependency : None
Request Id
Add or append the request id to the req
object.
const requestId = requestId;app;
Middleware dependency : None
Child logger
Create a child logger and append it to the req
object. Logger must be a bunyan instance (with the method child
).
const childLogger = childLogger;app;
Middleware dependency : Request Id (optional)
JWT Token
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 = jwtToken;app;
Middleware dependency : None
HTTP Access logger
Log http access properties for each request (like Apache httpd) in JSON format.
const httpAccessLogger = httpAccessLogger;app;
Middleware dependency : Child logger (optional if options are overridden), Request Id (optional), JWT Token (optional)
Language
Set req.language
according to the Accpet-Language
header
opts.languages
is a mandatory array, it must contains at least one language.
const language = language;app;
Middleware dependency : None
i18n
Parse i18n data in req.body
using req.language
value
const i18n = i18n;app;
Middleware dependency : Language middleware
IP Blacklisting
Force IP address validation before accepting a request.
- set environment variable IP_BLACKLIST to be a list of comma separated IP addresses
const ipBlacklist = blacklistIPs;app;
Middleware dependency : None
Contribute
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