验证Node.js中的URL查询字符串

时间:2011-01-24 15:47:57

标签: javascript node.js

正确形成的查询字符串如下所示:

http://baseurl.thing/update?id=123&foo=50&bar20

我想将这个“安全”地映射到一个对象中,但我不想最终得到未定义的值。有没有一种验证查询字符串的好方法?

详细信息:我想将其转换为具有url模块的对象。即:

var url_parts = url.parse(request.url, true);

然后我可以根据url_parts.pathname进行路由。我想访问url_parts.query.idurl_parts.query.foourl_parts.query.bar,但前提是它们都存在且仅在没有提供其他参数的情况下才会访问,这样我就不会出现静默的未定义值。< / p>

1 个答案:

答案 0 :(得分:6)

设置默认值,然后使用您网址中的值覆盖它们。

实施例

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.

希望有所帮助!