@universal-packages/express-parameters
v1.2.6
Published
universal-parameters as an express middleware.
Downloads
2,758
Readme
Express parameters
universal-parameters as an express middleware.
Install
npm install @universal-packages/express-parameters
npm install express
Middleware
parameters([unionKind])
Unites request relevant attributes to set a Parameters object in the request to pass to the following handlers.
import { parameters } from '@universal-packages/express-parameters'
import express from 'express'
const app = express()
app.use(parameters())
Union kind
By default the parameters middleware will use the request body
as a subject for the Parameters
object, you can pass another strategy depending your needs. For example:
app.use(parameters('params-body'))
join
Joins allbody
,params
andquery
as the subject.separate
Builds a new object using allbody
,params
andquery
within their own keys as the subject.body
Usesbody
as the subject.body-params
Joinsbody
andparams
as the subject.body-query
Joinsbody
andquery
as the subject.query
Usesquery
as the subject.query-params
Joinsquery
andparams
as the subject.params
Usesparams
as the subject.
express params
In order for the middleware to access the params request object, it needs to be used as route handler.
import { parameters } from '@universal-packages/express-parameters'
import express from 'express'
const app = express()
app.get('/user/:id', parameters('join'), (request) => {
console.log(equest.parameters.subject.id)
})
// > 1
express body
In order for the middleware to access the body request object, it needs to be previously parsed as json
.
import { parameters } from '@universal-packages/express-parameters'
import express, { json } from 'express'
const app = express()
app.use(json())
app.use(parameters())
// > 1
Global methods
injectParameters(request: Request)
To only inject the parameters object into the request and don't behave as middle ware use this method. In case you are doing some custom middleware.
import { injectParameters } from '@universal-packages/express-parameters'
import express from 'express'
const app = express()
app.use((request, response, next) => {
injectParameters(request)
next()
})
// > 1
Typescript
This library is developed in TypeScript and shipped fully typed.
Contributing
The development of this library happens in the open on GitHub, and we are grateful to the community for contributing bugfixes and improvements. Read below to learn how you can take part in improving this library.