http模块 获取http请求报文中的路径 与 查询字符串

虽然request.url已包含属性和查询字符串,但使用不便,若只需其中一个不好提取,于是用到了如下路径和字符串的单独查询方法:

一、获取路径

例如:我在启动谷歌端口时输入http://127.0.0.1:9000 后接了 "/search?keyword=111" 我想要查询到url路径为search字符串为111。方法如下:

1.导入url模块

const url=require('url');

2.创建服务对象

3.运用url.parse解析查询字符串为一个对象

const server=http.createServer((request,response)=>{response.end('url'); //end设置响应体// console.log(request.url); 
//虽然request.url已包含属性和查询字符串 /search?keyword=5&num=1 /favicon.ico  但使用不便,若只需其中一个不好提取,于是用到了如下路径和字符串的单独查询方法:// 2.使用url.parse()方法解析request.url里面的内容
//url.parse() 方法接受两个参数://参数一:要解析的URL字符串。//参数二:布尔值true/false ,表示是否要解析查询字符串为一个对象。如果为 true,则URL的查询部分(通常是?后面的部分)将被解析为一个键值对象。let res=url.parse(request.url,true); // console.log(res); //输出可以看到 路径为pathname: '/search', pathname: '/favicon.ico',  后接true,使查询字符串变成了一个对象
let pathname=res.pathname;console.log(pathname); //  /search  /favicon.ico   可以看到pathname里就是我们所要的路径
});
//启动服务
server.listen(9000,()=>{ console.log('服务已启动...');
});

二、获取查询字符串

// 1.导入url模块
const url=require('url');
// 创建服务对象:
const server=http.createServer((request,response)=>{response.end('url'); //end设置响应体let res=url.parse(request.url,true); let keyword=res.query.keyword;
//我们输出上文的 console.log(res);可以看到 查询字符串是 query: [Object: null prototype] { keyword: '5', num: '1' }的形式的,所以是.query.keywordconsole.log(keyword); //5 undefined  第一个url的keyword为5,第二个url里面没有包含keyword这个参数所以为undefined
});
server.listen(9000,()=>{ console.log('服务已启动...');
});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/770828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编译安装飞桨fastdeploy@FreeBSD(失败)

FastDeploy是一款全场景、易用灵活、极致高效的AI推理部署工具, 支持云边端部署。提供超过 🔥160 Text,Vision, Speech和跨模态模型📦开箱即用的部署体验,并实现🔚端到端的推理性能优化。包括 物…

Gemma开源AI指南

近几个月来,谷歌推出了 Gemini 模型,在人工智能领域掀起了波澜。 现在,谷歌推出了 Gemma,再次引领创新潮流,这是向开源人工智能世界的一次变革性飞跃。 与前代产品不同,Gemma 是一款轻量级、小型模型&…

1升级powershell后才能安装WSL2--最后安装linux--Ubuntu 22.04.3 LTS

视频 https://www.bilibili.com/video/BV1uH4y1W7UX特殊开启–Hyper-V虚拟机 把一下代码保存到【a.bat】的执行文件中,进行Hyper-V虚拟机的安装开启【Windows 批处理文件 (.bat)】 pushd "%~dp0" dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mu…

鸿蒙Harmony跨模块交互

1. 模块分类介绍 鸿蒙系统的模块一共分为四种,包括HAP两种和共享包两种 HAP(Harmony Ability Package) Entry:项目的入口模块,每个项目都有且只有一个。feature:项目的功能模块,内部模式和En…

(已解决)vue3使用富文本出现样式乱码

我在copy代码到项目里面时候发现我的富文本乱码了 找了一圈不知道是哪里vue3不适配还是怎么,后来发现main.js还需要引入 import VueQuillEditor from vue-quill-editor // require styles 引入样式 import quill/dist/quill.core.css import quill/dist/quill.snow…

YOLOv9代码解读[01] readme解读

文章目录 YOLOv9COCO数据集上指标:环境安装训练验证重参数化 Re-parameterization推断相关链接 YOLOv9 paper: YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information github: https://github.com/WongKinYiu/yolov9 COCO数据集上指…

网络安全笔记-day8,DHCP部署

DHCP部署与安全 全称(Dynamic Host Configura Protocol)动态主机配置协议 DHCP原理 DHCP协议_科来测试dhcp网络包-CSDN博客🔍 注意的是利用广播地址发送包 ACK(确认) 如果DHCP服务器损坏,则在87.5%时…

Open WebUI大模型对话平台-适配Ollama

什么是Open WebUI Open WebUI是一种可扩展、功能丰富、用户友好的大模型对话平台,旨在完全离线运行。它支持各种LLM运行程序,包括与Ollama和Openai兼容的API。 功能 直观的界面:我们的聊天界面灵感来自ChatGPT,确保了用户友好的体验。响应…

线性代数 - 应该学啥 以及哪些可以交给计算机

AI很热,所以小伙伴们不免要温故知新旧时噩梦 - 线代。 (十几年前,还有一个逼着大家梦回课堂的风口,图形学。) 这个真的不是什么美好的回忆,且不说老师的口音,也不说教材的云山雾绕,单…

【考研数学二】线性代数重点笔记

目录 第一章 行列式 1.1 行列式的几何意义 1.2 什么是线性相关,线性无关 1.3 行列式几何意义 1.4 行列式求和 1.5 行列式其他性质 1.6 余子式 1.7 对角线行列式 1.8 分块行列式 1.9 范德蒙德行列式 1.10 爪形行列式的计算 第二章 矩阵 2.1 初识矩阵 2…

查看VMWare ESXi 6.5/6.7服务器上 GPU直通的状态

VMWare ESXi 6.5/6.7服务器状态 查看配置参数

生物信息学 GO、KEGG

文章目录 北大基因本体论分子通路KEGGGO注释分子通路鉴定 关于同源 相似性 b站链接:北大课程 概述了当前生物信息学领域中几个重要的概念和工具,介绍基因本体论(Gene Ontology, GO)、分子通路知识库KEGG(Kyoto Encyclo…

纯前端调用本机原生Office实现Web在线编辑Word/Excel/PPT,支持私有化部署

在日常协同办公过程中,一份文件可能需要多次重复修改才能确定,如果你发送给多个人修改后再汇总,这样既效率低又容易出错,这就用到网页版协同办公软件了,不仅方便文件流转还保证不会出错。 但是目前一些在线协同Office…

go的for循环应该这么用

目录 目录 一:介绍 1: for流程控制 2:for-range流程控制 二:实例展示 1://按照一定次数循环 2://无限循环 3: //循环遍历整数、各种容器和通道 4:遍历通道 5://指针数组循环 6&…

Pillow教程05:NumPy数组和PIL图像的相互转化

---------------Pillow教程集合--------------- Python项目18:使用Pillow模块,随机生成4位数的图片验证码 Python教程93:初识Pillow模块(创建Image对象查看属性图片的保存与缩放) Pillow教程02:图片的裁…

SpringBoot 文件上传(三)

之前讲解了如何接收文件以及如何保存到服务端的本地磁盘中: SpringBoot 文件上传(一)-CSDN博客 SpringBoot 文件上传(二)-CSDN博客 这节讲解如何利用阿里云提供的OSS(Object Storage Service)对象存储服务保存文件。…

vite5+vue3+ import.meta.glob动态导入vue组件

import.meta.glob 是 Vite 提供的一个特殊功能,它允许你在模块范围内动态地导入多个模块。这在处理大量的文件,如组件、页面或其他模块时特别有用,特别是当你需要根据某些条件或模式来动态加载它们时。 1.创建需要动态导入的组件目录 假设你…

设计模式—观察者模式与发布订阅

观察者设计模式 观察者设计模式(Observer Design Pattern)是一种常用的软件设计模式,它是一种行为型模式。该模式用于定义对象之间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知…

FTP 文件传输服务

FTP连接 控制连接:TCP 21,用于发送FTP命令信息 数据连接:TCP 20,用于上传、下载数据 数据连接的建立类型: 主动模式:服务端从 20 端口主动向客户端发起连接 被动模式:服务端在指定范围…

flask_restful数据解析

参数验证也叫参数解析 Flask-Restful 插件提供了类似 WTForms 来验证提交的数据是否合法 的包,叫做 reqparse 。 # Flask_RESTFUl数据解析 from flask import Flask,render_template from flask_restful import Api,Resource from flask_restful.reqparse import …