亲宝软件园·资讯

展开

node将对象转化为query的实现方法

在下月亮有何贵干 人气:0

前言

之前我将对象转化为query会考虑使用querystring第三方库等,最近才发现nodejs存在内置对象URLSearchParams、URL可以直接使用,不需要额外引入其他依赖。

本文介绍一下比较简单的对象与query串互相转换的方法。

对象转query串

const params = {
    name: "luna",
    age: "18",
    sex: "female",
};

const queryString = new URLSearchParams(Object.entries(params)).toString()

console.log(queryString) // name=luna&age=18&sex=female

const url = `http://xxx.xx.x.xx.com/getUser?${queryString}`

console.log(url) // http://xxx.xx.x.xx.com/getUser?name=luna&age=18&sex=female

url获取query并转成对象

第一种

const url = 'http://xxx.xx.x.xx.com/getUser?name=luna&age=18&sex=femal'

// URL对象的searchParams方法可以得到一个对应的URLSearchParams对象
const queryString = new URL(url).searchParams 

let queryObject = {}

for (let [key, value] of queryString.entries()) {
    queryObject[key] = value
}

console.log(queryObject) // { name: 'luna', age: '18', sex: 'femal' }

第二种

const http=require("http")
const url=require("url");
 
const server=http.createServer((req,res)=>{
    //获取请求的url
    const reqUrl=req.url
    //第一种方式  加true 转为对象
    console.log("姓名:"+url.parse(reqUrl,true).query.name,"年纪:"+url.parse(reqUrl,true).query.age)
    res.end()
})
server.listen(8080)

加载全部内容

相关教程
猜你喜欢
用户评论