Middleware for HTTP Conditional Requests (RFC 7232)
npm install express-preconditions


Middleware for HTTP Conditional Requests (RFC 7232).
It conditionally processes a HTTP request based on a precondition (such as an etag or modification date).
A precondition is specified using the If-Match, If-None-Match, If-Modified-Since or If-Unmodified-Since HTTP header.
The change log is automatically produced with
the help of semantic-release.
Install with npm
> npm install express-preconditions --save
Include the following in your server startup
```javascript``
const preconditions = require('express-preconditions')
app.use(preconditions())``
orjavascript``
const preconditions = require('express-preconditions')
const options = { ... }
app.use(preconditions(options))
See our test server for more details.
Name | Description
:---- | :-----------
error | A function that takes (status code, message, req, res) and sends an error response.['PUT', 'PATCH', 'DELETE']
requiredWith | An array of HTTP methods that must include one of the precondition headers. This prevents the lost update issue. Defaults to .(req)
stateAsync | A function that takes and returns a Promise to the get the assoiciated resource state.
The resource state contains the etag and lastModified properties, which conform to the respective HTTP headersundefined
and can be .
The default stateAsync() obtains the resource state by sending a HEAD request to the server.
The following HTTP status codes can be returned by the middleware
Code | Reason
:---- | :------
304 (Not Modified) | The resource has not been modified since the version specified by the precondition(s).
412 (Precondition Failed) | A precondition failed.
428 (Precondition Required) | A precondition header is required to avoid the lost update issue.
501 (Not implemented) | A precondition is not yet implemented.
* The If-Range` header is not currently supported.
Copyright © 2016 Richard Schneider (makaretu@gmail.com)