Nodejs提取网址参数解决“querystring”已弃用问题

 更新时间:2022年08月22日 15:42:30   作者:天海一直在  
无论是前端还是后端,经常出现的应用场景是URL中参数的处理,下面这篇文章主要给大家介绍了关于Nodejs提取网址参数解决“querystring”已弃用问题的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

代码实现       

目前学的比较简单,网址传参没有采用加密方式,我们一般用"?"来对url和参数进行分隔,用&来对每个参数进行分隔,新建了summary.js代码如下

const http = require('http');
const querystring = require('querystring');
const server = http.createServer((req, res)=>{
    const method = req.method; //获取方法
    const url = req.url; //请求的路由
    const path = url.split('?')[0];
    const querystring = require('querystring');
    const query = querystring.parse(url.split('?')[1]);
    console.log('method',method);
    console.log('url',url);
    console.log('path',path);
    console.log('query',query);
});
server.listen(5000, () =>{
    console.log('server running at port 5000');
});

其中,

第6行的常量path就为网址中"?"前的路径内容

第8行的常量query就为网址中"?"后的参数内容

例如localhost:5000/api/blog/list?id=天海一直在&pwd=123456

请求得到的path为:/api/blog/list

请求得到的query为:{ id: '天海一直在', pwd: '123456' }

遇到的问题:“querystring”已弃用

在引用querystring时发现该方法被划线了,原因是封装的querystring被做了弃用标识,表示后续不会对此封装函数进行更新和维护,过一段时间可能会被删除,这就导致不能正常对url进行切片,这时只需要按住ctrl点击被划掉的querystring,进入js封装的原代码。

将弃用声明这一行删除,ctrl +s保存,这时回到summray.js就可以看到querystring不是被划线的了

这时在该目录下的终端输入node summary.js运行,打开浏览器,输入网址http://localhost:5000/api/blog/list?id=天海一直在&pwd=123456,就可以实现问号后面的网页参数可以被提取出来的功能了,运行的返回结果如下:

PS D:\文件\Nodejs学习> node summray.js
server running at port 5000
method GET
url /api/blog/list?id=%E5%A4%A9%E6%B5%B7%E4%B8%80%E7%9B%B4%E5%9C%A8&pwd=123456
path /api/blog/list
query [Object: null prototype] { id: '天海一直在', pwd: '123456' }

2022/3/27后加入内容

实际解决问题借鉴评论区老哥的方法就是将querystring替换为querystringify

先npm i querystringify

再导入:const qs = require('querystringify')

最后使用:const body = qs.parse(str)即可

补充:node.js 解决querystring弃用对post请求分割字符串的影响

当用这个方法时出现白线,然后查官方文档有这样一句话:

querystring API 被视为旧版的。 虽然它仍在维护,但是新的代码应该改为使用 <URLSearchParams> API。 

然后点进<URLSearchParams> 这个链接。找到了这个:

但有个问题:就是post请求连接所获得的字符串并不是上面URL()中的详细地址 ,就没法用这个方法。

解决:在连接post请求所获得的字符串前面再加上'http://xxxx/?’那个协议也是根据自己的情况而定。

当然,对于这个新的node方法我也是直接复制用的,并没有非常具体看,所以里面东西还是要大家自己在官网看。 

总结

到此这篇关于Nodejs提取网址参数解决“querystring”已弃用问题的文章就介绍到这了,更多相关Nodejs解决querystring已弃用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • node.js readline和line-reader逐行读取文件方法

    node.js readline和line-reader逐行读取文件方法

    Readline是Node的原生模块。它是专门为从任何可读流逐行读取内容而开发的。它可用于从命令行读取数据,line-reader模块是Node.js中逐行读取文件的开源模块。它不是本地模块,所以你需要使用npm(节点包管理器)安装它
    2022-10-10
  • 使用Koa实现一个获取视频播放地址的接口

    使用Koa实现一个获取视频播放地址的接口

    在本节课中,我们将学习如何使用 Koa 实现一个获取视频播放地址的接口,我们将创建一个控制器,通过视频 ID 获取播放地址,并设置相应的路由,最后,我们将使用 Postman 进行测试,感兴趣的朋友可以参考下
    2024-05-05
  • Nodejs中获取当前函数被调用的行数及文件名详解

    Nodejs中获取当前函数被调用的行数及文件名详解

    这篇文章主要给大家介绍了关于Nodejs中获取当前函数被调用的行数及文件名的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • nodejs高版本降为低版本的详细解决方案

    nodejs高版本降为低版本的详细解决方案

    部分老旧项目需要使用低版本的node,网上很多是无效的,高版本无法直接安装低版本node,但是低版本nodejs可以安装部分高版本node,从而达到升级效果,下面这篇文章主要给大家介绍了关于nodejs高版本降为低版本的详细解决方案,需要的朋友可以参考下
    2022-12-12
  • 利用yarn实现一个webpack+react种子

    利用yarn实现一个webpack+react种子

    其实以前就写过如何使用React-router和Webpack快速构建一个react程序。后来发现版本太老,于是乎最近又重新组织了下结构,使用最近发布的yarn作为包管理工具,介绍下基本安装步骤,有需要的朋友们下面来一起看看吧。
    2016-10-10
  • Node.js的文件权限及读写flag详解

    Node.js的文件权限及读写flag详解

    Node.js对文件的读写还是相当灵活的,因为自己老是记不住文件或目录权限的数值表达和字符表达。所以整理出这篇文章,方便以后查阅,下面来一起看看吧。
    2016-10-10
  • node中的__filename和__dirname的使用详解

    node中的__filename和__dirname的使用详解

    本文主要介绍了node中的__filename和__dirname的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Node.js 中 morgan 依赖及基本使用详解

    Node.js 中 morgan 依赖及基本使用详解

    文章介绍了Node.js中`morgan`依赖的安装、基本使用、日志格式(如`dev`、`combined`、`common`等),以及如何自定义日志格式和将日志写入文件,感兴趣的朋友一起看看吧
    2025-02-02
  • 利用node.js爬取指定排名网站的JS引用库详解

    利用node.js爬取指定排名网站的JS引用库详解

    最近在学习node.js爬虫,由于 nodejs 强大的异步特性,让我们可以轻松以异步高并发去爬取网站,下面这篇文章主要给大家介绍了关于利用node.js爬取指定排名网站的JS引用库的相关资料,需要的朋友可以参考下。
    2017-07-07
  • Ubuntu 16.04 64位中搭建Node.js开发环境教程

    Ubuntu 16.04 64位中搭建Node.js开发环境教程

    如果想要在Ubuntu 16.04上安装Node.js的话,这篇文章对你来说肯定很重要。Node.js从本质上来说就是一个运行在服务端上的封装好了输入输出流的javascript程序。本文给大家详细介绍了在Ubuntu 16.04 64位搭建Node.js开发环境的步骤,有需要的朋友们可以参考学习。
    2016-10-10

最新评论