javascript - 在 Node.js 中验证 URL 查询字符串

标签 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,但前提是它们都存在并且只有在没有提供其他参数的情况下,我才不会出现未定义的值。

最佳答案

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

例子

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/

相关文章:

node.js - 如果数组是变量,nodejs mongodb $in [array] 不工作

javascript - Mocha 全局范围界定问题

javascript - 将数组附加到 div

使用 Bootstrap3 忽略 PHP 代码的 Javascript WYSIWYG

javascript - 如何使 tableRow 可点击?我在网上看过但是没用

Javascript 继承调用父级的非默认构造函数

Javascript Animate 无法工作

javascript - Express - 使用curl 添加 JSON 有效负载导致解析错误

node.js - 获取 Azure Blob 存储中可用元素数量的总文件大小

javascript - 从 Controller 设置 ng-show 值但我的代码不工作