码迷,mamicode.com
首页 > Web开发 > 详细

nodejs内置模块querystring中parse使用问题

时间:2020-04-20 15:45:14      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:意思   name   length   style   官方   nodejs   bsp   翻译   mamicode   

const qs = require(‘querystring‘)
let string = ‘name-wangyi#pass-123#sex-0‘
let obj = qs.parse(string, ‘#‘, ‘-‘) 

输出obj会出现

技术图片

 

 而我手动改变字符串变对象:

// 实现parse
var string1 = ‘name=wangyi&pass=123&sex=0‘
var arr1 = string1.split(‘&‘)
var arrAll = new Array();
console.log(arr1)
for (let i = 0; i < arr1.length; i++) {
    arrAll.push(arr1[i].split(‘=‘));
    console.log(arrAll)
}
var arrObj = new Object();
for (let i = 0; i < arrAll.length; i++) {
    arrObj[arrAll[i][0]] = arrAll[i][1];
}
console.log(arrObj)
console.log(qs.parse(string1))

结果:

技术图片

 

 当然罪魁祸首就是object:null prototype

翻译一下:该对象没有原型,所以会显示出 [Object: null prototype](没有原型的意思是没有继承属性和方法,例如toString、hasOwnProperty等每个实例化每个对象时都会具有的方法)

官方nodejs文档解释如下

技术图片

 

 解决办法:

先将对象进行JSON字符串转化(JSON.stringify()),然后再转化成对象(JSON.parse())

//解决Object:null prototype的方法:
var arrString = JSON.stringify(qs.parse(string1))
var obj = JSON.parse(arrString)
console.log("改变后", obj)

技术图片

 

原型为Object

nodejs内置模块querystring中parse使用问题

标签:意思   name   length   style   官方   nodejs   bsp   翻译   mamicode   

原文地址:https://www.cnblogs.com/xmjs/p/12737787.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!