正确形成的查询字符串如下所示:
http://baseurl.thing/update?id=123&foo=50&bar20
我想将此“安全地”映射到一个对象中,但我不想以未定义的值结束。是否有验证查询字符串的好方法?
详细信息:我想用 url
模块将它变成一个对象。即:
var url_parts = url.parse(request.url, true);
然后我可以根据 url_parts.pathname
进行路由。我想访问 url_parts.query.id
、url_parts.query.foo
和 url_parts.query.bar
,但前提是它们都存在并且只有在没有提供其他参数的情况下,我才不会出现未定义的值。
最佳答案
设置默认值,然后用您的网址中的值覆盖它们。
例子
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.
希望对您有所帮助!
关于javascript - 在 Node.js 中验证 URL 查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4783924/