Nodejs对内置模块fs的进阶使用方法技巧,querystring使用技巧及进行escape和unescape编码与解码,stat类的使用,模块url的使用,对文件的目录树操作,

1.引入内置模块fs,const fs = require(‘fs’)对stat进行操作
2.Class:fs.Stats的简单使用技巧,也可查看官网文档dosc使用什么版本的node就查看什么版本的node的docs,这里我使用的是node v12.6.0版本的

在这里插入图片描述

  异步stat查看文件信息
  fs.stat('../node01',(err,data)=>{//查找文件信息
      if(!err){
          console.log(data)
      }
  });
  const data  = fs.statSync('./www');
  console.log(data);
  读取到的是单个文件夹
fs.stat('../node01',(err,stats)=>{
    if(!err){
        console.log(stats.isFile()); 
        console.log(stats.isDirectory()); 
    }
})
//判断读取到的文件是否是文件
  const data = fs.readdirSync('../node01');
  // console.log(data);
  for (let index = 0; index < data.length; index++) {
      console.log(data[index]);
      fs.stat(data[index],(err,stats)=>{
          if(!err){
              console.log(stats.isDirectory()); //判断是否文件夹
              console.log(stats.isFile()); //判断是否是文件
              console.log('-------');
          }
      })
  }

###判断读取到的文件是否是文件的示意图###判断读取到的文件是否是文件的示意图

3.对文件的目录树操作
//在控制台打印目录树
  fs.readdir('读取文件的路径path',(err,data)=>{
      console.log(data+'\n =======');
      if(!err){
      for(let i=0 ; i < data.length ; i++){
          console.log(data[i]);
           }
      }
  })

####对文件的目录树操作示意图###
对文件的目录树操作的示意图

4.对url地址的操作,引入url
const url = require('url');//引入url
/*parse将url由字符串类型转换为object对象
format将url有对象类型转换为字符串类型                      
https://www.demo.cn:5000/user/login?us=123456&pw=123&sex:0#你好呀
HTTP协议(potocol)  auth(user:pass)   域名(hostname)    端口号(prot)   path路径     search(?query=string)     哈希(#hash)
    https        username:password   www.demo.cn          5000     /user/login    us=123456&pw=123&sex:0     你好呀
url组成:[(potocol)协议+hostname(域名+端口号)+path(path+search(?query=string))+哈希(#hash)]
*/
  • i. //parse将url由字符串类型转换为object对象
		// let String = 'https://www.demo.cn:5000/user/login?us=123456&pw=123&sex:0#你好呀';
		// let obj = url.parse('https://user:[email protected]:8080/p/a/t/h?query=string#hash');
		// let obj1 = url.parse(String)
		// console.log(obj);
		// console.log(obj1);

parse将字符串转对象

  • ii.//format将url有对象类型转换为字符串类型
let obj={
	  protocol: 'https:',
	  slashes: true,
	  auth: null,
	  host: 'www.demo.cn:5000',
	  port: '5000',
	  hostname: 'www.demo.cn',
	  hash: '#你好呀',
	  search: '?us=123456&pw=123&sex:0',
	  query: 'us=123456&pw=123&sex:0',
	  pathname: '/user/login',
	  path: '/user/login?us=123456&pw=123&sex:0',
	  href: 'https://www.demo.cn:5000/user/login?us=123456&pw=123&sex:0#你好呀'
	};
	let string = url.format(obj);
	console.log(string);

format对象转字符串

5.queryString是使用技巧,引用模块querystring
  • i.parse, stringify使用
    const qs = require(‘querystring’);//引入qs
    //parse将字符串转化成对象类型
  let str ='us=你好呀&ps=12345'
    let obj =qs.parse(str,'&','=');
    // //第一个参数要传转成对象的字符串,第二个参数传入分开key的符号,及每对键值对之间的符号,第三个参数传入分开键值对的符号
    console.log(obj);

      //stringify将object类型转化字符串类型
      let object={us:'nihao', ps:'12345'}
      let string = qs.stringify(object,'$','-');//如果object类型中存在中文则会编译成编码的格式
    // console.log(string);

querystring示意图

  • ii. escape()//进行编码操作 unescape()//进行解码操作
    const qs = require('querystring');//引入qs
    let str ='us=你好呀&ps=12345'
    //escape()//进行编码操作 unescape()//进行解码操作
    let  Escape  = qs.escape(str)//escape将中文进行编码
    console.log(Escape);
    let string='us%3D%E4%BD%A0%E5%A5%BD%E5%91%80%26ps%3D12345';
    let Unescape = qs.unescape(string)//unescape解码
    console.log(Unescape))

unescape示意图

发布了19 篇原创文章 · 获赞 139 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/NanQiao1716/article/details/104682189