1.1.2 • Published 5 years ago
express-get-param v1.1.2
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 value- String
-
getParam.STRING
-getParam.INTEGER
-getParam.DATE
- Note: getParam.DATE will parse the date string into amoment
object -getParam.ARRAY
- Note: getParam.ARRAY will parse comma-separated string into array Function: - return: parsed value
``` getParam('paramName', {parser:(paramValue)=>{return paramValue}}) ```
- String
-
validator
(Function): Validate raw parameter value - return: boolean -validationError
(Function):alias
(String): The name which will be used to save to res.locals``` getParam('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