Express
Payload utilizes a few Express-specific middleware packages within its own routers. You can customize how they work by passing in configuration options to the main Payload config's express
property.
Custom Middleware
Payload allows you to pass in custom Express middleware to be used on all of the routes it opens. This is useful for adding logging or any other custom functionality to your endpoints.
There are 2 exposed properties. Each property is an array of middleware functions.
preMiddleware
- runs before any of the Payload middlewarepostMiddleware
- runs after all of the Payload middleware
JSON
express.json()
is used to parse JSON body content into JavaScript objects accessible on the Express req
. Payload allows you to customize all of the json
method's options. Common examples of customization use-cases are increasing the max allowed JSON body size which defaults to 2MB
.
Example payload.config.js for how to increase the max JSON size allowed to be sent to Payload endpoints:
You can find a list of all available options that are able to be passed to express.json()
here.
Compression
Payload uses the compression
package to optimize transfer size for all of the routes it opens, and you can pass customization options through the Payload config.
To customize compression options, pass an object to the Payload config's express
property.
Example payload.config.js:
Typically, the default options for this package are suitable. However, for a list of all available customization options, click here.