代码之家  ›  专栏  ›  技术社区  ›  user1283776

第一个查询字符串参数未使用qs npm包进行分析

  •  0
  • user1283776  · 技术社区  · 6 年前

    qs npm包。我做错什么了?

    我在控制台中执行这些命令

    import * as qs from './qs'
    var addr = "https://www.somesite.se/?title=querystring&action=edit"
    var parsed = qs.parse(addr)
    

    在执行这些命令之后 parsed

    { 'https://www.somesite.se/?title': 'querystring',
      action: 'edit' }
    

    这很奇怪。为什么是 title 不是返回对象的属性?我希望 parsed.title 成为 'querystring' 解析标题 undefined .

    为什么?

    2 回复  |  直到 6 年前
        1
  •  7
  •   Amadan    6 年前

    qs 解析查询字符串。它不解析URL。使用URL解析器( new URL(addr).search.substring(1) )首先从URL获取查询字符串。

    qs.parse("title=querystring&action=edit") 应该给你一个正确的答案。

    质量 ? new URL(addr).searchParams

        2
  •  4
  •   You Nguyen    6 年前

    答案是:这个 qs 库仅用于解析查询字符串。

    根据 Wikipedia :

    查询字符串是统一资源定位器(URL)的一部分,它将值分配给指定的参数。

    enter image description here

    var addr = 'title=querystring&action=edit';
    var parsed = qs.parse(addr);
    console.log(parsed); // {title: "querystring", action: "edit"}
    

    var addr2 = '?title=querystring&action=edit';
    var parsed2 = qs.parse(addr2, { ignoreQueryPrefix: true });
    console.log(parsed2); // {title: "querystring", action: "edit"}
    

    希望能有帮助!