NodeJS之------(Url,QueryString,Path)模块

nodejs基础一(REPL环境,模块化,异常处理,url,queryString,path,util) node1. nodejs简介2. REPL环境3. 模块化3.1 package.json3.2 CommonJS模块化特点modulerequire3.3 ECMAScript 模块exportimport3.4 核心模块4.异常处理4.1 try-catch4.2 回调函数4.3 EventEmitter接口的error事件5. url模块5.1 url.parse()5.2 url.format()5.3 url.resolve(from,to)5.4 url.hash5.5 url.host5.6 阅读详情
一,开篇分析
 
这篇文章把这三个模块拿来一起说,原因是它们各自的篇幅都不是很长,其次是它们之间存在着依赖关系,所以依次介绍并且实例分析。废话不多说了,请看下面文档:
 
(1),"Url模块"
 
 
 
  来个小栗子:  
 
1 var url = require('url');
2 var queryUrl = "http://localhost:8888/bb?name=bigbear&memo=helloworld" ;
3 console.log(typeof url.parse(queryUrl)) ;
4 console.log(url.parse(queryUrl)) ;
 
 1 object // typeof 
 2 
 3 { 
 4     protocol: 'http:',
 5     slashes: true,
 6     auth: null,
 7     host: 'localhost:8888',
 8     port: '8888',
 9     hostname: 'localhost',
10     hash: null,
11     search: '?name=bigbear&memo=helloworld',
12     query: 'name=bigbear&memo=helloworld',
13     pathname: '/bb',
14     path: '/bb?name=bigbear&memo=helloworld',
15     href: 'http://localhost:8888/bb?name=bigbear&memo=helloworld'
16 }
 
 加以说明如下:  
 
  protocol: 请求协议
 
  host: URL主机名已全部转换成小写, 包括端口信息
 
  auth:URL中身份验证信息部分
 
  hostname:主机的主机名部分, 已转换成小写
 
  port: 主机的端口号部分
 
  pathname: URL的路径部分,位于主机名之后请求查询之前
 
  search: URL 的“查询字符串”部分,包括开头的问号。
 
  path: pathname 和 search 连在一起。
 
  query: 查询字符串中的参数部分(问号后面部分字符串),或者使用 querystring.parse() 解析后返回的对象。
 
  hash: URL 的 “#” 后面部分(包括 # 符号)
 
  
 
 补充api:"url.format(urlObj)"
  
 
  作用:输入一个 URL 对象,返回格式化后的 URL 字符串。
 
(2),"QueryString模块"
 
 
 
  "QueryString" 模块用于实现URL参数字符串与参数对象的互相转换,来个栗子,如下所示:
 
    
 
1 var url = require('url');
2 var qs = require('querystring');
3 var queryUrl = "http://localhost:8888/bb?name=bigbear&memo=helloworld" ;
4 queryUrl = url.parse(queryUrl).query ;
5 console.log(queryUrl) ;
6 console.log(qs.parse(queryUrl)) ;
  运行结果·如下:
 
    name=bigbear&memo=helloworld
 
    {
 
      name: 'bigbear',
 
      memo: 'helloworld'
 
    }
 
  补充api:
 
  querystring.stringify(obj, [sep], [eq])------序列化一个对象到一个 query string。
 
  可以选择是否覆盖默认的分割符('&')和分配符('=')。            
 
  querystring.stringify({foo: 'bar', baz: 'qux'}, ';', ':')// 返回如下字串'foo:bar;baz:qux'
 
  querystring.parse(str, [sep], [eq], [options])------将一个 query string 反序列化为一个对象。可以选择是否覆盖默认的分割符('&')和分配符('=')。
  
  options对象可能包含maxKeys属性(默认为1000),它可以用来限制处理过的键(key)的数量.设为0可以去除键(key)的数量限制.
  
  示例:querystring.parse('foo=bar&baz=qux&baz=quux&corge') // { foo: 'bar', baz: ['qux', 'quux'], corge: '' }
 
 
 
 
(3),"Path模块"
 
 
 
  本模块包含一套用于处理和转换文件路径的工具集。几乎所有的方法仅对字符串进行转换, 文件 系统是不会检查路径是否真实有效的。
 
  先来一个简单的栗子:    
 
1 var url = require('url');
2 var qs = require('querystring');
3 var path = require("path") ;
4 var queryUrl = "http://localhost:8888/bb?name=bigbear&memo=helloworld" ;
5 var root = path.basename(queryUrl) ;
6 console.log(root) ; // bb?name=bigbear&memo=helloworld
  返回路径中的最后一部分,以”/“分割。
 
复制代码
1 var url = require('url');
2 var qs = require('querystring');
3 var path = require("path") ;
4 var queryUrl = "http://localhost:8888/bb?name=bigbear&memo=helloworld" ;
5 var root = path.basename(queryUrl) ;
6 console.log(root) ; // bb?name=bigbear&memo=helloworld
7 var ext = path.extname(root) ;
8 console.log(ext || "Not Ext Name !") ; // Not Ext Name !
复制代码
  由于api过多,以上只列出来了常用的几个,大家需认真 阅读文档。
 
 
 
二,综合栗子
 
场景描述------服务器接到不同情况的请求,通过 “Url” 分别做不同处理,代码如下:
 
  (1),建立”index.html“  
 
复制代码
 1 <!doctype html>
 2 <html>
 3     <head>
 4         <title>Bigbear</title>
 5         <meta content="IE=8" http-equiv="X-UA-Compatible"/>
 6         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7         <style type="text/css">
 8             div {
 9                 margin-top: 50px;
10                 width: 100%; 
11                   margin: 0px;
12                 height:120px;
13                 line-height:120px;
14                   color:#fff;
15                   font-size:22px;
16                   background:#ff9900;
17                 text-align: center;
18             }
19         </style>
20         <script src="index.js"></script>
21     </head>
22     <body>
23         <div>Hello,大熊!</div>
24     </body>
25 </html>
复制代码
  (2),建立”index.js“
 
alert("Hello bb !") ; // 为了测试就这么一句代码
  (3),建立”server.js“
 
复制代码
 1 var http = require("http");
 2 var fs = require('fs');
 3 var url = require('url');
 4 var path = require("path") ;
 5 http.createServer(function(request,response) {
 6     var method = request.method ;
 7     method = method.toLowerCase() ;
 8     var fileName = path.basename(request.url) ;
 9     var extName = path.extname(fileName) ;
10     var root = "./" ;
11     if("get" == method){
12         if(extName){
13             fs.readFile("./" + fileName,"utf-8",function (error,data){
14                 if(error)throw error ;
15                 response.writeHead(200,{
16                     "Content-Type": {
17                          ".css": "text/css" ,
18                          ".js" : "application/javascript"
19                   }[extName]
20                 }) ;
21                 response.write(data) ;
22                 response.end() ;
23             });
24         }
25         else{
26             fs.readFile(root + "index.html","utf-8",function (error,data){
27                 if(error)throw error ;
28                 response.writeHead(200,{
29                     "Content-Type" : "text/html"
30                 });
31                 response.write(data) ;
32                 response.end() ;
33             });
34         }
35     }
36     else if("post" == request.url){
37         // handle post here
38     }
39 }).listen(8888) ;
40 console.log("Web Server Running , Port On ---> 8888") ;
 
 
  node server.js 运行一下。
 
 
 
三,总结一下
 
(1),理解上述三个模块之间的联系,灵活使用 。
 
 
 
(2),熟练使用 "Url,QueryString,Path" 三个模块相关的api。
 
 
 
(3),最后强调:理解上面例子中的代码意图,不断重构,不断总结。
Evolution of Heuristics: Towards Efficient Automatic Algorithm Design Using Large Language Model 启发式算法广泛用于处理复杂的搜索和优化问题。然而,启发式算法的手动设计通常非常耗费人力,需要丰富的工作经验和知识。本文提出了启发式算法的进化 (EoH),这是一种新颖的进化范式,它利用大型语言模型 (LLM) 和进化计算 (EC) 方法进行自动启发式设计 (AHD)。EoH 代表自然语言中的启发式概念,称为思想。然后由 LLM 将它们转换为可执行代码。进化搜索框架中思想和代码的演变使其在生成高性能启发式算法方面非常有效和高效。 阅读详情

相关推荐

LSTM量化选股实战:从数据清洗到回测归因的工程化闭环

LSTM(长短期记忆网络)是一种专为建模长程依赖而设计的循环神经网络,其门控机制能有效应对金融时序数据的非线性、高噪声与动态演化特性。相比传统统计模型或简单RNN,LSTM在股价趋势建模中展现出更强的鲁棒性与泛化能力,尤其适合处理日频多因子时序信号。其技术价值不仅在于提升预测精度,更在于支撑可归因、可审计的量化策略工程实践——从特征构建、标签定义到滚动回测,每一步都需严防未来信息泄露与过拟合风险。典型应用场景包括A股多因子选股、行业轮动信号生成及Alpha组合优化。本文聚焦LSTM在真实量化场景中的落地难点

weixin_33158887的博客 398

Node.js中http模块

http模块是Node.js官方提供的、用来创建web服务器的模块。提供http模块提供的http.createServer()方法,就能方便的把一台普通的电脑,变成一台Web服务器,从而对外提供Web资源服务 目录 服务器相关的概念 创建最基本的web req请求对象 res响应对象 解决中文乱码问题 根据不同的URL响应不同的HTML内容 clock时钟web服务器 服务器相关的概念 1.IP地址 IP地址就是互联网上每台计算机的唯一地址,因此IP地址具有唯一性。如果把“个人电脑”

zhang1509123907的博客 1149

别再用Excel画波特图了!用LTspice免费仿真软件,5分钟搞定电路传递函数分析

本文介绍了如何利用LTspice免费仿真软件高效绘制波特图,解决传统Excel绘图效率低、精度不足的问题。通过详细的操作步骤和实战案例,展示LTspice在电路传递函数分析中的自动化计算、专业级精度和完整特性展示等优势,帮助工程师快速完成频率响应分析。

weixin_42524226的博客 461

Nodejs06--node常用模块之--querystring

querystring 模块 字面意思就是 查询字符串,一般是对http请求所带的数据进行解析 引入模块:require('querystring'); querystring模块仅有四个方法 querystring.parse(str);parse函数:是将一个字符串反序列化为一个对象。 querystring.escape(str);escape函数:可使传入的字符串进行编码。 querystring.stringify(str);stringif函数:将一个对象序列化成一个字符串,...

宁静致远 1654

将pytorch的权值矩阵量化为定点数补码并导入FPGA中

Xilinx FPGA实现LSTM算法时对ROM的初始化 将pytorch框架的权重矩阵以定点数补码的形式导入到FPGA中 文章目录Xilinx FPGA实现LSTM算法时对ROM的初始化1. pytorch框架中的LSTM2. 初始化一个RNN模型 3. 初始化ROM的coe文件格式 4. 将参数转换为补码,并且输出到coe文件 5. 配置一个ROM 6. 结论7. 代码 1. pytorch框架中的LSTM pytorch框架将LSTM算法中的八个权值矩阵连接成两个矩阵,假设要导入的LSTM网络的输

随缘分享 4527

保姆级避坑指南:用Docker在Ubuntu 22.04上部署Isaac Sim 5.1.0,搞定宇树G1仿真环境

本文提供了一份详细的保姆级避坑指南,帮助用户在Ubuntu 22.04上通过Docker部署Isaac Sim 5.1.0,并成功搭建宇树G1仿真环境。文章涵盖了环境准备、Docker与NVIDIA容器工具包的配置、Isaac Sim镜像的定制化拉取与配置,以及宇树G1仿真环境的实战调试,旨在帮助开发者高效解决部署过程中的常见问题。

weixin_33728268的博客 207

node - querystring

querystring是处理URL中参数的模块。 const queryStr = require('querystring') console.log('111: ', queryStr) // 所有方法 /* { unescapeBuffer: [Function: unescapeBuffer], unescape: [Function: qsUnescape], escape: [Function: qsEscape], stringify: [Function.

记录点滴 903

ETL数据集成案例

一个典型的ETL数据集成案例是将多个来源的数据合并成一个数据集。假设有一个公司,该公司使用一些不同的系统来存储不同部门的数据,例如销售数据存储在一个CRM系统中,财务数据存储在一个ERP系统中,人力资源数据存储在一个HR系统中。为了更好地进行报告和分析,该公司决定将所有这些数据集成到一个数据仓库中。以下是实现这一目标的ETL过程的步骤:提取(Extract):首先,需要从每个系统中提取所需的数据。每个系统可能有不同的数据格式和结构,因此需要编写不同的提取程序或查询来提取数据。

runqu的博客 948

nodeJs--querystring模块

options(可省)传入一个对象,该对象可设encodeURIComponent这个属性值的类型为function,可以将一个不安全的url字符串转换成百分比的形式,默认值为querystring.esca。separator(可省)指用于分割str这个字符串的字符或字符串,默认值为"&“;separator(可省)用于连接键值对的字符或字符串,默认值为"&“;eq(可省)指用于划分键和值的字符或字符串,默认值为”=";eq(可省)用于连接键和值的字符或字符串,默认值为”=";...

qq_56973906的博客 1152

科研党必备:用Python+Excel批量下载文献的保姆级教程(附常见错误解决)

本文提供了一套利用Python和Excel实现外文文献批量下载的自动化解决方案。教程详细介绍了如何从数据库导出并清洗DOI信息,编写健壮的Python脚本进行批量下载,并包含错误处理与进阶优化技巧,旨在帮助科研人员将重复性劳动自动化,大幅提升文献收集效率。

weixin_29050513的博客 306

宋浩线性代数笔记

Miao-A-SongHao-Linear-Algebra-Notes bilibili 宋浩老师 “惊叹号” 系列 《线性代数》网课 笔记及时间点目录 Github项目地址:https://github.com/cy69855522/Miao-A-SongHao-Linear-Algebra-Notes ???? 前言 我发现吧,线代没记笔记真不行。 浩浩学习,天天向上。数学网课推荐????宋浩老师的免...

Knife丶小刀博客 4万+

Node常用内置模块之url模块和querystring模块

url模块在v16的nodejs中已经明确被废弃,在将来的升级node中,可能被不支持。官网建议在后,URL类。

MRlaochen的博客 1119

小卫星多普勒频偏MATLAB代码

多普勒频偏是由于发射机和接收机之间的相对运动而引起的频率变化。对于小卫星,由于其速度和高度的变化,多普勒频偏会变得更加明显。本文将探讨小卫星多普勒频偏的原理、影响因素以及补偿方法。多普勒频偏的原理当发射机和接收机之间存在相对运动时,接收到的信号频率会发生变化。这种频率变化称为多普勒频偏。其原理可以描述如下:设发射机和接收机之间的距离为 d,发射信号的频率为 f0,发射机和接收机的相对速度为 v。则接收到的信号频率 f 为:其中 c 为光速。

qq_59747472的博客 244

nodeJs常用的内置模块 url querystring http path events fs ctypto stream zlib

nodeJs中常用的一些内置模块有: url,用于处理与解析 URL; querystring,用于解析和格式化 URL 查询字符串; http,HTTP服务; path,路径,用于处理文件路径和目录路径; events,事件触发器,用于事件的派发与监听; fs,文件系统,用于文件的读写操作; ctypto,用于数据的加密和解密; 1.url URL操作 1.1 new URL() new U...

蒲公英芽的博客 1683

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

nodejs核心模块(http/path/url/querystring/fs)

fs var fs=require('fs') var express=require('express') var app=express() app.get('/',function(req,res){ var data=JSON.parse(fs.readFileSync('./data.json'))//要用同步方法,待取到json对象后才能返回数据 res.sen...

ChaunceyQu的博客 759

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

大熊君大话NodeJS之------(Url,QueryString,Path)模块

一,开篇分析 这篇文章把这三个模块拿来一起说,原因是它们各自的篇幅都不是很长,其次是它们之间存在着依赖关系,所以依次介绍并且实例分析。废话不多说了,请看下面文档: (1),"Url模块"   来个小栗子:   1 var url = require('url'); 2 var queryUrl = "http://localhost:8888/bb?name=bigbear&am...

weixin_30596343的博客 141

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

NodeJS的模块系统

A、CommonJS是一套代码规范,目的是为了构建JavaScript在浏览器之外的生态系统(服务器端,桌面端)B、CommonJS的主要内容a、模块必须通过module.exports导出对外的变量或接口b、通过require()来导入其他模块的输出到当前模块作用域中(模块一般在文件的顶部导入)。...

Yannick_H的博客 1217

2021.10.26 Node.js笔记

文章目录前言一、核心模块1.http模块创建服务器 createServer()2.url模块解析URL url.parse()WHATWG API——url.parse()的新版3.path模块获取后缀名 path.extname()querystringutil二、文件模块判断路径对应的是文件/目录 stat()读取并返回目录中内容向文件中添加字段创建目录读取文件内容改变文件名删除目录删除文件覆写文件/创建并写入文件三、第三方模块创建多级目录结构mkdirp()总结 前言 NodeJS是一种基于 Go

白瑕 的博客 766

七天学会NodeJS(二)文件操作(fs、buffer、stream(防爆仓)、path、遍历目录)、网络操作(http、URL)

七天学会NodeJS(二)文件操作(fs、buffer、stream(防爆仓)、path、遍历目录)、网络操作(http、URL) 文章目录七天学会NodeJS(二)文件操作(fs、buffer、stream(防爆仓)、path、遍历目录)、网络操作(http、URL)1. 文件操作开门红小文件拷贝大文件拷贝API走马观花Buffer(数据块)Stream(数据流)File System(文件系统)Path(路径)遍历目录递归算法遍历算法同步遍历异步遍历文本编码BOM的移除GBK转UTF8单字节编码小结2.

qq_43456781的博客 398

学习Node.js笔记(二)

模块化 在nodejs中,存在2种类型的模块,系统模块、自定义模块。 系统模块 系统模块是nodejs官方提供给我们使用的模块库,通常官方的模块库比较通用,能帮助我们解决大多数问题,我们也不需要进行安装直接require()到我们的项目当中就可以了,我这里介绍一下通常使用的库吧。 path模块:格式规范化路径 const path=require('path'); var str='c:\\w...

weixin_34080571的博客 143

2021-10-18 NodeJS

一、NodeJS 模块 1、模块概述 NodeJS 中每个.js 文件都是一个独立的模块,给.js 文件默认提供了一个名称为 module 的对象,用于指代当前 js 文件,可以通过 module 导出当前模块中的数据 NodeJS 中当模块开始使用时,会出现另一个概念:包 默认情况下 NodeJS 中模块和包都是同一个概念 模块当成一个独立的 js 文件 包当成存放多个模块的文件夹 2、系统模块 NodeJS 运行时安装好之后,默认提供的模块,如 fs 文件系统、net 网络模块、http 网 络处理

qq_45272615的博客 349

NodeJS Express Sequelize

nodejs. express. Sequelize 简介以及api和用法

qq_58151324的博客 559

2021-10-24 NodeJS模块

NodeJS模块 系统模块 NodeJS 运行时安装好之后,默认提供的模块,如 fs 文件系统、net 网络模块、http 网 络处理模块等等;在项目应用中不需要安装可以直接使用的模块 系统模块和自定义模块,引入顺序是什么样的呢? 小总结 默认情况下,应用中优先引入系统模块、然后引入加载自定义模块 ① 引入的模块不带路径,默认引入系统模块/第三方模块 ② 引入的模块带有相对路径,默认引入自定义模块 NodeJS 常见模块 系统模块:path,处理文件路径的模块 系统模块:url,处理和网址相关的数据 系

qq_45272615的博客 92

NodeJS

1. http 1.1 http状态码 分类 描述 1** 信息 2** 成功 3** 重定向 4** 客户端错误 5** 服务器错误 1.2 请求方式 GET 获取 数据放在 url 里面传输的,容量 ≤ 32k POST 发送数据 容量大 2. 接收 GET 数据 const http = require('http'); const url = require('url'); let server = http.createServe

L20150514的博客 332

node.js搭建服务器

搭建第一个服务器 创建server.js Nodejs-api url 操作:–require(‘url’) url.parse(urlString)查询url信息 url.format(urlObject)将信息解析成正常的url地址 Query String querystring模块用于实现URL参数字符串与参数对象的互相转换,示例如下。 require(‘querystring’...

blackhehaha的博客 420

nodeJS入门(一)之web服务器开发

web服务器开发一、nodeJS1.1、服务器1.2、web服务端保存的资源1.3、web服务器的作用1.4、nodeJS(铺垫完毕)1.4.1、正式介绍nodeJS1.4.2、nodeJS优劣势1.4.3、特点1.4.4、安装二、web服务器开发2.1、搭建服务器 (http模块)2.2、静态资源托管(fs模块)2.3、path模块2.3、动态资源(接口实现) 一、nodeJS 1.1、服务器 服务器就是提供服务的,有web服务器等 1.2、web服务端保存的资源 有静态资源(.html,.css,.js

qq_38256266的博客 1473
上一篇: 候选样式表
下一篇: AngularJS 路由 resolve用法
Apress92
博客等级 码龄11年 39粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值