Reputation: 32511
A correctly formed query string looks like:
http://baseurl.thing/update?id=123&foo=50&bar20
I want to map this "safely" into an object, but I don't want to end up with undefined values. Is there a nice way of validating the query string?
Details: I want to turn this into an object with the url
module. i.e.:
var url_parts = url.parse(request.url, true);
and then I can route based on url_parts.pathname
. I want to access url_parts.query.id
, url_parts.query.foo
and url_parts.query.bar
, but only if they all exist and only if no other parameters were supplied, so that I don't get silent undefined values appearing.
Upvotes: 3
Views: 6494
Reputation: 1926
set up defaults, and then overwrite them with values from your url.
EXAMPLE
var defaults = {
id : 0,
foo : 'default value',
bar : 'default.value'
};
var url_parts = url.parse(request.url, true);
var query = url_parts.query;
query.prototype = defaults; //does the inheritance of defaults thing
// now query has all values set, even if they didn't get passed in.
Hope that helps!
Upvotes: 6