express-get-param
v1.1.2
Published
Node.js get parameter middleware.
Downloads
12
Readme
get-param
Express.js get parameter middleware.
Installation
npm install express-get-param
or
yarn add express-get-param
Basic Usage
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)
What is this about and why?
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.
Example:
Before:
//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....
...
}
After:
//route.js
...
router.get('/api/page/:pageName',
getParam('limit'),
getParam('skip'),
Contraller.pageList)
//controller.js
(req, res)=>{
const { limit, skip, pageName } = res.locals
...
}
The parameters Fetching Order
- 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
Additional Options
parser
(String or Function): Parse raw parameter valueString
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
Env Vars
SUPPRESS_GET_PARAM_WARNING
: Disable all warnings (Default: false)
Debugging
Use environment DEBUG to show debug logs
DEBUG=get-param:*
Testing
npm run test