node.js2

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

第一部分:fs模块

1.引入fs模块

  • require('fs');

2.写文件

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

  • path:文件路径

  • data:写的内容,string/buffer

  • option:配置参数:比如:

  • 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=
  • 如果为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
  • 当前执行文件的完整路径
posted @ 2017-10-16 22:29  不完美的完美  阅读(302)  评论(0编辑  收藏  举报