req.query and req.param in ExpressJS

后端 未结 4 2219
花落未央
花落未央 2020-11-28 04:01

Main differences between req.query and req.param in Express

  • How are Both different from each other
  • When to use then in wha
相关标签:
4条回答
  • 2020-11-28 04:24

    I would suggest using following

    req.param('<param_name>')
    

    req.param("") works as following

    Lookup is performed in the following order:

    req.params
    req.body
    req.query
    

    Direct access to req.body, req.params, and req.query should be favoured for clarity - unless you truly accept input from each object.

    Ref:http://expressjs.com/4x/api.html#req.param

    0 讨论(0)
  • 2020-11-28 04:27

    req.query will return a JS object after the query string is parsed.

    /user?name=tom&age=55 - req.query would yield {name:"tom", age: "55"}

    req.params will return parameters in the matched route. If your route is /user/:id and you make a request to /user/5 - req.params would yield {id: "5"}

    req.param is a function that peels parameters out of the request. All of this can be found here.

    UPDATE

    If the verb is a POST and you are using bodyParser, then you should be able to get the form body in you function with req.body. That will be the parsed JS version of the POSTed form.

    0 讨论(0)
  • 2020-11-28 04:32

    req.query is the query string sent to the server, example /page?test=1, req.param is the parameters passed to the handler.

    app.get('/user/:id', handler);, going to /user/blah, req.param.id would return blah;

    0 讨论(0)
  • 2020-11-28 04:32

    Passing params

    GET request to "/cars/honda" 
    

    returns a list of Honda car models

    Passing query

    GET request to "/car/honda?color=blue"
    

    returns a list of Honda car models, but filtered so only models with an stock color of blue are returned.

    It doesn't make sense to add those filters into the URL parameters (/car/honda/color/blue) because according to REST, that would imply that we want to get a bunch of information about the color "blue". Since what we really want is a filtered list of Honda models, we use query strings to filter down the results that get returned.

    Notice that the query strings are really just { key: value } pairs in a slightly different format: ?key1=value1&key2=value2&key3=value3.

    0 讨论(0)
提交回复
热议问题