这一节有两个地方不太懂

这一节有两个地方不太懂

一、在解析querystring时,定义query常量为一个空对象,后面的query[key] = val是把key=value这一项放到query空对象里面,这是对想添加参数的方法吗?在哪一节讲到这个js基础?

// 解析 querystring

    const query = {}

    queryStr && queryStr.split('&').forEach(item => {

        // item 即 a=100 形式

        const key = item.split('=')[0]

        const val = item.split('=')[1]

        query[key= val    // {a: '100', b: '200'}

    })



二、query中有filterType这个方法吗?为什么这个filterType全等于1,则返回all,全等于2则返回onle mine,1跟2我知道是代表a:100和b:200,但还是不明白

if (path === '/api/list' && method === 'GET') {

        if(query.filterType === '1') {

            return res.end('this is list router, all')

        }

        if(query.filterType === '2') {

            return res.end('this is list router, only mine')

        }

        // return res.end('this is list router')

    }


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,对于你的问题解答如下:

1、query[key] = val 这句代码表示给query对象添加一个属性, 以key保存的值作为属性名,val保存的值作为属性值。

示例:给query对象添加一个属性,属性名为key保存的值即:a,  属性值为value保存的值, 即:1

https://img1.sycdn.imooc.com//climg/613817e109f9e06b06700522.jpg

在前面的方括号语法中有提到过这种写法,关于对象点语法和方括号语法使用的区别,老师也总结了一个图文节,同学可以回顾下,加深理解和记忆。

2、可以结合下图标注理解:

https://img1.sycdn.imooc.com//climg/61418012096f0e1809540558.jpg

祝学习愉快~





  • leepulse 提问者 #1

    第1个问题知道了,query[key] = val是es6的语法,我回头复习下。

    第2个问题,我能不能这样理解,filterType=1相当于a=100,filterType=2相当于b=200,只不过把?a=100&b=200拆分成{a:100, b:200},也就是说filterType=1和filterType=2是{filterType:1, filterType:2},这样对吗?那如果http://localhost:3000/api/list?filterType=1&filterType=2这样的url呢?页面显示this is list router吗?

    2021-09-08 10:58:34
  • 好帮手慕慕子 回复 提问者 leepulse #2

    同学你好, filterType=1相当于a=100 这样理解是对的,但是后面的理解不太准确,可以参考如下分析:

    (1)访问页面时,只需要在url后面传递一个参数filterType,设置不同的值就可以了,一般不会传递两个同名的参数

    如果想要展示只有自己的,访问时将filterType参数值设置为2即可,例如:

    https://img1.sycdn.imooc.com//climg/6138326409030b7008210154.jpg

    如果想要展示全部,访问时将filterType参数值设置为1即可,示例:

    https://img1.sycdn.imooc.com//climg/613832860967ca1607900170.jpg

    (2)http://localhost:3000/api/list?filterType=1&filterType=2 这种写法传递了两个同名的参数,

    querystring内部解析规则,会将其解析为一个属性,数组形式保存两个值,如下:

    https://img1.sycdn.imooc.com//climg/613834bb0999ea7109980737.jpg

    由于代码没有对这种情况做处理,所以页面展示为404

    示例:

    https://img1.sycdn.imooc.com//climg/6138348009117dad05830102.jpg

    祝学习愉快~

    2021-09-08 11:59:12
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师