1.1.2 • Published 5 years ago

express-get-param v1.1.2

Weekly downloads
22
License
MIT
Repository
github
Last release
5 years ago

get-param

npm version Build Status Coverage Status PRs Welcome

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

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 a moment object - 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.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