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

Nodejs对内置模块fs的进阶使用方法技巧,querystring使用技巧及进行escape和unescape编码与解码,stat类的使用,模块url的使用,对文件的目录树操作,
版权声明:本文为CSDN博主「NanQiao1716」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/NanQiao1716/article/details/104682189

1.引入内置模块fs,const fs = require('fs')对stat进行操作
  • i.如不知nodejs简单的对文件与文件夹的curd请查看文件的curd或查看node文件的读写判断
  • ii.如对nodejs是什么,以及nodejs npm配置源是什么不知可查看nodejs简介
  • iii.如对这些都以知晓可查看nodejs如何使用第三模块express简单创建服务器查看
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示意图

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/NanQiao1716/article/details/104682189
————————————————
版权声明:本文为CSDN博主「NanQiao1716」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/NanQiao1716/article/details/104682189

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