I want to know what is the difference between req.query and req.body?
below is a piece of code where req.query
is used. what happens if i use req.body
req.body is mainly used with form using POST method.
You've to use enctype="application/x-www-form-urlencoded"
in the form properties. As POST method don't show anything in URL, you have to use body-parser middleware
if the form contains an input text with name="age" then req.body.age return the value of this feld.
req.query takes parameters in the URL (mainly GET method)
example for this URL ► http://localhost/books?author=Asimov
app.get('/books/', (req, res) => { console.log(req.query.author) }
will return Asimov
by the way, req.params take the end part of the URL as a parameter.
example for this URL ► http://localhost/books/14
app.get('/books/:id', (req, res) => { console.log(req.params.id) }
will return 14
req.query contains the query params of the request.
For example in sample.com?foo=bar
, req.query
would be {foo:"bar"}
req.body contains anything in the request body. Typically this is used on PUT
and POST
requests.
For example a POST
to sample.com with the body of {"foo":"bar"}
and a header of type application/json
, req.body
would contain {foo: "bar"}
So to answer your question, if you were to use req.body
instead of req.query
, it would most likely not find anything in the body, and therefore not be able to validate the jwt.
Hope this helps.