express-get-param

1.1.2 • Public • Published

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

Package Sidebar

Install

npm i express-get-param

Weekly Downloads

0

Version

1.1.2

License

MIT

Unpacked Size

17 kB

Total Files

14

Last publish

Collaborators

  • ryanwu