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=