美文网首页
nodejs querystring丢失数组问题

nodejs querystring丢失数组问题

作者: 一只特例独行de猪 | 来源:发表于2019-11-15 17:35 被阅读0次

    在开发web的时候发现一个诡异的问题
    querystring.stringify在处理大小为1的数组,提交到服务器后解析会丢失数组类型直接变成了字符串, 测试如下:

    > const querystring = require("querystring");
    > querystring.stringify({a:['1']})
    'a=1'
    > querystring.stringify({a:['1',"2"]})
    'a=1&a=2'
    > querystring.stringify({a:['1','2']})
    'a=1&a=2'
    > querystring.parse(querystring.stringify({a:['1','2']}))
    { a: [ '1', '2' ] }
    > querystring.parse(querystring.stringify({a:['1']})) //a之前是数组的
    { a: '1' } //a变成了字符串
    

    解决办法:

    1. 将a字符串化,{a:JSON.stringify(['1'])},服务器端再用parse解析出来
    2. 服务器端判断a为字符串的时候将其转换为数组,type of data.a === 'string' && data.a = [data.a]

    相关文章

      网友评论

          本文标题:nodejs querystring丢失数组问题

          本文链接:https://www.haomeiwen.com/subject/pyvsictx.html