Adds Express to your application.
- Setup Guide for adding middleware and routes.
- Common "Gotchas" encountered with Express middleware.
npm i @gasket/plugin-express
Update your gasket
file plugin configuration:
// gasket.js
+ import pluginExpress from '@gasket/plugin-express';
export default makeGasket({
plugins: [
+ pluginExpress
]
});
All the configurations for the plugin are added under express
in the config:
compression
: true by default. Can be set to false if applying compression differently.excludedRoutesRegex
: (deprecated) renamed to more correctmiddlewareInclusionRegex
.middlewareInclusionRegex
: RegExp filter to apply toward request URLs to determine when Gasket middleware will run. You can use negative lookahead patterns to exclude routes like static resource paths.- 'trustProxy': Enable trust proxy option, see Express documentation on Express behind proxies
export default makeGasket({
plugins: [
pluginExpress
],
express: {
compression: false,
middlewareInclusionRegex: /^(?!\/_next\/)/,
trustProxy: true
}
});
Routes can be defined in a in-app plugin in the plugins
directory. The plugin will hook the express
lifecycle to add the routes to the express app.
// plugins/routes-plugin.js
export default {
name: 'routes-plugin',
hooks: {
express: async function (gasket, app) {
app.get('/hello', (req, res) => {
res.send('Hello World!');
});
}
}
};
Executed after the middleware
event for when you need full control over
the express
instance.
export default {
name: 'sample-plugin',
hooks: {
/**
* Update Express app instance
*
* @param {Gasket} gasket The Gasket API
* @param {Express} express Express app instance
* @returns {function|function[]} middleware(s)
*/
express: async function (gasket, express) {
}
}
};
Executed after the express
event. All middleware functions returned from this
hook will be applied to Express.
export default {
name: 'sample-plugin',
hooks: {
/**
* Add Express error middlewares
*
* @param {Gasket} gasket The Gasket API
* @returns {function|function[]} error middleware(s)
*/
errorMiddleware: function (gasket) {
}
}
};
This plugins hooks the createServers lifecycles from @gasket/plugin-https.