I’m trying to use GET variables to transfer some simple data but for some reason I’m doing it wrong.
My code is pretty simple. I use Node.js HTTP & URL libraries. When I try to run following code, I get TypeError: Cannot read property ‘foo’ of undefined. I really don’t understand why because foo is passed in the URL and if I do console.log to q object, there’s foo value.
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'})
var vars = url.parse(req.url,true)
var q = vars.query
if(q.foo) {
res.end('yay')
} else res.end('snif')
}).listen(8000,"127.0.0.1")
Your problem is not that
foodoesn’t exist, the problem is thatqitself isundefined.Where does that come from? Well if we clean it up and add some logs…
..we find out that the browser requests:
There you go! Of course the favicon request has not
GETparams, you simply need to check thatqis notundefined.