Express.js get parameter middleware.
npm install express-get-param
or
yarn add express-get-param
const express = require('express')
const app = express()
const getParam = require('express-get-param')
app.use(getParam('parameterName', {options}))
or
app.get('/', getParam('parameterName, {Options}), controller)
This is a middleware which allows you to extract parameter value from request parameters, headers, query string, or body. It's like the old time req.param
in Express.js 3 but more powerful.
Compare with express-param, defining controller related parameters in the route file will definitely improve the code readability.
//route.js
router.get('/api/page/:pageName', Contraller.pageList)
//controller.js
(req, res)=>{
const pageName = req.param('pageName')
const limit = req.query.limit || 0
const skip = req.query.skip || 0
// Probably more query parameters I will take....
...
}
//route.js
...
router.get('/api/page/:pageName',
getParam('limit'),
getParam('skip'),
Contraller.pageList)
//controller.js
(req, res)=>{
const { limit, skip, pageName } = res.locals
...
}
- URL Parameters: https://expressjs.com/en/api.html#req.params
- Headers: https://expressjs.com/en/api.html#req.get
- Query String: https://expressjs.com/en/api.html#req.query
- Body: https://expressjs.com/en/api.html#express.json https://expressjs.com/en/api.html#req.body
-
parser
(String or Function): Parse raw parameter value-
String
getParam.STRING
getParam.INTEGER
getParam.DATE
- Note: getParam.DATE will parse the date string into a
moment
object
- Note: getParam.DATE will parse the date string into a
getParam.ARRAY
- Note: getParam.ARRAY will parse comma-separated string into array
-
Function:
- return: parsed value
getParam('paramName', {parser:(paramValue)=>{return paramValue}})
-
-
validator
(Function): Validate raw parameter value - return: boolean - -
validationError
(Function): -
alias
(String): The name which will be used to save to res.localsgetParam('paramName', {alias: 'paramName2'}) ...//in later routes const param = res.locals.paramName2
SUPPRESS_GET_PARAM_WARNING
: Disable all warnings (Default: false)
Use environment DEBUG to show debug logs
DEBUG=get-param:*
npm run test