4

I'm running the following code on Node.js with Express 4.7.2

express.get('/test1',function(req, res) {
  var ttt = false;
  if (req.query.username === undefined) ttt = true;
  res.json({query: ttt});
});

I call the URL:

{{protocol}}://{{server}}/test1?username=1

And I get the result:

{query: true}

Which shows req.query.username is indeed undefined

What am I missing? How come the query param is not passed in?

4
  • How are you "calling the URL"? Using cURL? A browser? Something else? Commented Sep 2, 2014 at 3:55
  • Both a browser (chrome) and Postman. Same result Commented Sep 2, 2014 at 3:56
  • I had this problem. Turns out it was a spelling mistake. I was using querry instead of query Commented May 9, 2018 at 11:23
  • Can you console log req.query object and see what is the result Commented Jul 11, 2018 at 8:49

2 Answers 2

3

The code you've shown works fine for me with node v0.10.30 and express 4.8.7:

var app = require('express')();

app.get('/test1',function(req, res) {
  var ttt = false;
  if (req.query.username === undefined) ttt = true;
  res.json({query: ttt});
});

app.listen(8000);

I then navigate to http://localhost:8000/test1?username=1 and it displays {"query":false}.

Sign up to request clarification or add additional context in comments.

3 Comments

but username=1 and it should be returning {query: true}
Not with the logic in the original code. I just copied it verbatim.
I have same problem: req.query is undefined for me: stackoverflow.com/q/45928112/630169 What is the problem could be?!
0

It seams that query typeof is string, and string of "undefined" is truthy.

In your code it should be:

if (req.query.username === "undefined")
  ttt = true;

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.