zoukankan      html  css  js  c++  java
  • node.js2

    同步是指:同步阻塞操作,异步是指:异步非阻塞操作。

    第一部分:fs模块

    1.引入fs模块

    • require('fs');

    2.写文件

    01.异步写:writeFile
    • fs.writeFile(path,data[,option],callback)

    • path:文件路径

    • data:写的内容,string/buffer

    • option:配置参数:比如:{encoding:'utf8'}

    • callback(err):回调函数

        //异步写入文件
        function writeFile(){
            fs.readFile('./www/404.html',function(err,data){
                console.log("读取的内容",data)
                fs.writeFile('./test.txt',data,{encoding:"utf8"},function(err){
                    if(err){
                        console.log("内容写入失败")
                        throw err
                    }
                    console.log("内容写入成功")
                })
            })
        }
        writeFile();
      
    02.同步写:writeFileSync
    • fs.writeFileSync(path,data[,option])

        //同步写入内容
        function writeFileSync(path){
            var result =fs.writeFileSync(path,"测试文本......");
            if(!result){
                console.log("内容写入成功")
            }
        }
        writeFileSync('./test.txt')
      

    3.追加内容

    01.异步追加内容:appendFile
    • fs.appendFile(path,data[,option],callback)
    02.同步追加内容:appendFileSync
    • fs.appendFileSync(path,data[,option])

    4.创建文件夹

    01.异步:mkdir
    • fs.mkdir(path,callback)
    02.同步:mkdirSync
    • fs.mkdirSync(path)

    5.读文件

    01.异步读取:readFile
    • fs.readFile(path,callback)
    • path:文件路径
    • callback(err,data):读取的buffer
    02.同步读取:readFilerSync
    • fs.readFile(path)

    6.读文件夹

    01.异步读取:readdir
    • fs.readdir(path,callback)
    02.同步读取:readdirSync
    • fs.readdirSync(path)

    7.判断文件/文件夹是否存在

    01.异步判断:exists
    • fs.exists(path,callback)

    • callback(res):回调,res:true/false

        //异步判断
        function fileExists(path){
        	fs.exists(path,function(res){
        		//res boolean值表示存在或是不存在
        		console.log("判断结果",res);
        
        	})
        }
        fileExists("./js");
      
    02.同步判断:existsSync
    • fs.existsSync(path)

    8.删除文件/文件夹

    删除文件:unlink/unlinkSync
    删除文件夹:rmdir/rmdirSync
    //fs.redir不能删除非空文件夹
    function removeDir(dirName){
    	fs.rmdir(dirName,function(res){
    		//如果删除成功,则res为null
    		console.log("操作结果",res)
    	})
    }
    removeDir("./css")
    

    9.更改文件/文件夹路径

    01.异步:rename
    • fs.rename(oldpath,newpath,callback)
    02.同步:renameSync
    • fs.renameSync(oldpath,newpath)

    10.监听文件夹

    • fs.watch(dirname,listener)
    • dirname:文件路径
    • listener(curr,prev)
    • curr:当前文件
    • prev:之前文件
    • fs.unwatchFile(filename,listener)

    11.其他

    获取物理路径:realpath(path,callback(err,resolvePath))/realpathSync(path)
    获取文件信息:stat(path,callback(err,stat))
    打开文件:fs.open(path,flags,callback(err,fd))
     flags:r    以读取模式打开文件。如果文件不存在抛出异常。
     		r+   以读写模式打开文件。如果文件不存在抛出异常。
            rs   以同步的方式读取文件。
            rs+  以同步的方式读取和写入文件。
            w    以写入模式打开文件,如果文件不存在则创建。
            wx   类似 'w',但是如果文件路径存在,则文件写入失败。
            w+   以读写模式打开文件,如果文件不存在则创建。
            wx+  类似 'w+', 但是如果文件路径存在,则文件读写失败。
            a    以追加模式打开文件,如果文件不存在则创建。
            ax   类似 'a', 但是如果文件路径存在,则文件追加失败。
            a+   以读取追加模式打开文件,如果文件不存在则创建。
            ax+  类似 'a+', 但是如果文件路径存在,则文件读取追加失败。                     
    
    写文件:fs.write(fd,buffer,offset,length,position,callback(err,bytes))
    读文件:fs.read(fd,buffer,offset,length,position,callback(err,bytes))
    关闭文件:fs.close(fd,callback(err))

    第二部分:模板

    1.用于解析,生成,拼接url

    2.http://127.0.0.1:3000/list.html?aa=10&bb=20#/ddd

    • 如果为true,则url.query={aa:10,bb:20}
    • 如果为false,则url.query='aa=10&bb=20'

    3.url实体字段:

    • protocol:协议
    • host:主机,包含端口
    • hostname:主机名
    • port:端口
    • .hash:hash参数
    • search:?参数
    • query:url参数
    • pathname:路径
    • path:含参数的路径
    • href:完整链接

    第三部分:querystring

    parse(querystr,sep,eq,option)

    • option:maxKeys:1000
    • sep:参数之间的分隔符
    • eq:参数的赋值连接符

    stringify(obj,sep,eq,option)

    escape

    • 解码

    unescape

    • 解码

    第四部分:path

    normalize:

    • 标准化路径
    • 生成物理路径

    join

    • 整合路径
    • join(path1,path2,...)

    resolve

    • 解析为绝对路径
    • resolve(cd1,cd2,cd3,....)
    • 相当于一次次的调用cd命令

    relative

    • 解析相对路径
    • relative(from,to)
    • 解析从from到to的相对路径
    • from为文件夹路径

    dirname

    • 路径所在文件夹路径
    • dirname(path)

    basename

    • 路径的最后一部分
    • basename(path[,ext])
    • ext:想要去掉的文件后缀名

    extname

    • 后缀名
    • extname(path)

    sep

    • 获取平台的文件路径分隔符
    • path.sep

    delimiter

    • 获取平台的路径分割符,比如c: ;
    • path.delimiter

    第五部分:路径的系统变量

    • __dirname
    • 当前文件夹
    • __filename
    • 当前执行文件的完整路径
  • 相关阅读:
    2017年6月笔记
    2017年5月笔记
    2017年4月笔记
    转发:i p _ f o r w a r d函数
    IP分组
    IP协议首部结构介绍
    IP:网际协议
    sed工具使用
    正则表达式匹配
    TCP的半连接
  • 原文地址:https://www.cnblogs.com/DCL1314/p/7679253.html
Copyright © 2011-2022 走看看