node.js(一)内置模块,url,querystring,buffer的简单使用

本文介绍了Node.js中的内置模块url、querystring和Buffer的使用。url模块提供parse和format方法解析和构建URL,resolve用于字符串拼接。querystring模块用于查询字符串的解析和格式化,包括stringify、parse、escape和unescape方法。Buffer是处理二进制数据的全局类,提供了如alloc、from、isBuffer和concat等方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

url(需要手动引入)

url模块用于处理与解析URL。
常用方法:

  • parse(""):将字符串类型的url转换为对象
  • format({}):将对象转换为url
  • resolve(url1,url2):url字符串拼接

应用:
parse(""):将字符串类型的url转换为对象
当我们获取到了一个网络地址,需要将其拆分并获取其中的参数。这时候我们可以使用parse("")来进行一个解析。

var url = require("url");
//引入url模块
var path = "http://47.96.133.125:80/find/findAll?name=lisi&age=12";
var resultUrl = url.parse(path);
console.log(resultUrl);

此时我们可以看到,parse方法将我们的url解析成为一个对象,我们可以非常轻松地获取它的内容。
在这里插入图片描述
format({}):将对象转换为url
当你获取了一个url对象时,可以使用这个方法将他重新还原为一个url地址。

var url = require("url");
var path = "http://47.96.133.125:80/find/findAll?name=lisi&age=12";
//parse(""):将字符串类型的url转换为对象
var resultUrl = url.parse(path);
//format将url对象转换为url
var path1 = url.format(resultUrl);
console.log(path1);//http://47.96.133.125:80/find/findAll?name=lisi&age=12

resolve(url1,url2):url字符串拼接
该方法可以将两个url字符串拼接在一起

var url = require("url");
var u1 = "http://47.96.133.125:8080";
var u2 = "/findAll?name=tom";
console.log(url.resolve(u1, u2));
//http://47.96.133.125:8080/findAll?name=tom

querystring(手动引入)

querystring模块提供用于解析和格式化URL查询字符串的实用工具
常用方法:

  • stringify():将对象转换为查询字符串
  • parse():将查询字符串转换为对象
  • escape():参数编码
  • unescape():参数解码

应用:
** parse():将查询字符串转换为对象**
当我们从前端获取到一个查询字符串时,需要将其拆分为我们需要的对象格式。可以使用parse方法来将查询字符串进行一个转换。

var qs = require("querystring");
var str = "name=lisi&age=30&gender=men";
//qs中的parse会将查询字符串转换为对象
var result = qs.parse(str);
console.log(result);
//[Object: null prototype] { name: 'lisi', age: '30', gender: 'men' }

stringify():将对象转换为查询字符串
当我们需要发送一个异步请求时,需要查看接口接收的是一个什么类型的数据。如果接口接收的是查询字符串,这个时候我们就需要将我们的一个数据进行一个转换,否则就会报错。

var qs = require("querystring");
var str = "name=lisi&age=30&gender=men";
//qs中的parse会将查询字符串转换为对象
var result = qs.parse(str);
//stringify会将对象转换为查询字符串
console.log(qs.stringify(result));
//name=lisi&age=30&gender=men

escape():参数编码
当我们将数据传输到浏览器时,我们会发现我们的输入已经被转换成一个二进制编码格式,使用该方法可以实现一个参数编码的转换

var qs = require("querystring");
var str = "name=lisi&age=30&gender=men";
//escape()参数编码
var es = qs.escape(str);
console.log(es);
//name%3Dlisi%26age%3D30%26gender%3Dmen

unescape参数解码
当我们从浏览器获取到一个网络地址参数时,有可能是一个二进制的格式,这个方法可以将二进制编码解码

var es = name%3Dlisi%26age%3D30%26gender%3Dmen;
//unescape参数解码
console.log(qs.unescape(es));
//name=lisi&age=30&gender=men

Buffer(全局变量,无需手动引入)

Buffer类被引入作为Node.js API的一部分,使其可以在TCP流或文件系统操作等场景中处理二进制数据流。可以将buffer理解为输送二进制数据流的缓存。
常用方法:

  • Buffer.alloc(size,[filal],[encode])
  • Buffer.from([]/buffer/string): 创建一个buffer,包含参数字节
  • Buffer.isBuffer(obj):判断obj是否为一个buffer类型
  • Buffer.concat([buffer,buffer]):buffer合并
  • buffer.toString(encode):将buffer类型转换为字符串

Buffer.alloc(size,[filal],[encode])
其中包含三个参数:size指创建的buffer长度,fial为填充的数组,encode为数组的编码,默认为utf-8,一般不填最后一个。

//创建一个长度为10的buffer
var buffer = Buffer.alloc(10);
//<Buffer 00 00 00 00 00 00 00 00 00 00>
//创建一个使用1来填充的buffer
var buffer1 = Buffer.alloc(10, 1);
console.log(buffer1);
//<Buffer 01 01 01 01 01 01 01 01 01 01>

Buffer.from([ ]/buffer/string):创建一个buffer,包含参数字节
括号里可以是一个string类也可以是一个buffer类

//创建一个buffer,包含参数字节
var buffer2 = Buffer.from([1, 2, 3, 4]);
console.log(buffer2);
//<Buffer 01 02 03 04>
//创建一个buffer,包含参数字节
var buffer2 = Buffer.from([1, 2, 3, 4]);
var buffer3 = Buffer.from(buffer2);
console.log(buffer3);
//<Buffer 01 02 03 04>

如果string中有非数字,那么就会将其转换为一个包含字符串’tést’ 的UTF-8 编码字节

const buffer4 = Buffer.from('tést');
console.log(buffer4);
//<Buffer 74 c3 a9 73 74>

Buffer.isBuffer(obj):判断obj是否为一个buffer类型

var buffer = Buffer.alloc(10);
console.log(Buffer.isBuffer(buffer));//ture
console.log(Buffer.isBuffer({ name: '12' }));//false

Buffer.concat([buffer,buffer]):buffer合并

var buffer = Buffer.alloc(10);
var buffer2 = Buffer.from([1, 2, 3, 4]);
console.log(Buffer.concat([buffer, buffer2]));
//<Buffer 00 00 00 00 00 00 00 00 00 00 01 02 03 04>

buffer.toString(encode):将buffer类型转换为字符串
注意:该方法是实例方法,可以直接在实例中调用
encode为字符编码,不填默认为utf-8

const buffer4 = Buffer.from('tést');
console.log(buffer4.toString("base64"));
//dMOpc3Q=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值