Nodejs fs模块的应用

先说一下同步和异步的区别
同步:组值后续代码的执行,限制性完当前的同步菜哦做才能往后执行,通过返回值返回获取结果
异步:不会组织后续代码执行,在一个独立的线程,执行完以后把结果放入到回调函数中,通过回调函数获取结果
引入模块
const fs = requier( ’ fs’ );
(1)查看文件状态

//fs.statSync(文件路径)   同步写法
//例如 
fs.statSync('/var/www/html')
//异步 写法
//fs,stat(文件路径,回调函数); 
fs.stat('/var/www/html',(err) { 
	if(err) throw err;
}) 
//将错误信息保存到err里面

(2)读取目录
同步
fs.readdirSync(文件的路径)
异步
fs.readdir(文件路径,回调函数)
他这个的结果是个数组
所以 var arr= readdirSync( 目录的路径 )
console.log(arr) 获取里面的内容并用数组形式打印出来
异步写法

fs.readdir('文件路径', (err, arr) => {
    if (err) throw (err);
    console.log(arr);
})

(3)文件写入
同步
fs.writeFileSync(文件路径,写入信息)
例如

fs.writeFileSync('./1.txt', 'hello');
 //覆盖写入,如果不存在有创建功能

异步
fs.writeFile(文件路径,写入内容,回调函数)
例如

fs.writeFile('./2.txt', '然哥', (err) => {
    if (err) throw (err);  
})  

4.追加写入文件
appendFileSync(文件的路径, 写入的数据) 同步写法

appendFileSync(' var /www/1.txt','我丢这么帅气呢 '`)
//异步写法
appendFile(' var /www/1.txt','我丢这么帅气呢 ',(err)=>{
	if(err) throw err;
})

/appendFile(文件的路径, 写入的数据, 回调函数)
如果文件不存在,先创建文件然后写入数据
如果文件已经存在,会在文件末尾追加写入数据
先创建一个数组 遍历数组将写入所有内容

//创建数组
var arr = ['赵1','赵2','赵3','赵4']
//遍历数组,并将数组里面的每个元素写入到stu.txt里面
for (var i = 0;i<arr.length;i++){fs.appendFileSync('./stu.txt', arr[i]+ '\n'}
//异步写法
for(var i=0;i<arr.length;i++) {
	fs.appendFile( )
}

(5)读取文件
readFileSync(文件的路径)/readFile(文件的路径, 回调函数)
读取的文件数据格// 5.读取文件数据格式为Buffer

let data = fs.readFileSync('./stu.txt');
 console.log(String(data));
 //异步读取的方法
fs.readFile('./stu.txt', (err, data) => {
    if (err) throw err;
    console.log(data.toString());
    // err 一旦报错就将错误放入到err
})

(6)删除文件
删除1.txt 2.txt
同步写法
unlinkSync(文件的路径)

fs.unlinkSync('./1.txt');

异步写法
unlink(文件的路径,回调函数)

fs.unlink('./2.txt', (err) => {
	if (err) throw err;
});
// err 一旦报错就将错误放入到err

(7)existsSync 检测是否存在
这个只有同步写法,异步写法被弃用了。

  //fs.fs.existsSync('./04_http.js');
  //判断 这个文件是否在如果存在将其删除掉
  if(fs.existsSync('./04_http.js')) {
  	fs.unlinkSync('./04_http.js')
  }
  //执行出来就会将这个文件给删除掉

存在-true 不存在-false
(8) 拷贝文件
同步 copyFileSync (源文件,目标文件的路径)

 fs.copyFileSync('./stu.txt', './mydir/2.txt');

异步 /copyFile(源文件,目标文件,回调函数 )

fs.copyFile('/var/www/html','/var/www/html2',(err)=>{
	if (err) throw err;
})

(9)文件流
createRead`Stream()创建可读取的流
createWriteStream()创建可写入的流
pipe ()用于将读取的流添加到写入流

const rs = fs.createReadStream('./1.zip');
const ws = fs.createWriteStream('./3.zip')
    //把读取的流通过管道的方法来添加到写入流
rs.pipe(ws);

监听事件:一旦触发时间,自动调用回调函数
on(事件名称,回调函数)

2.http协议
http协议是浏览器和web服务器之间的通信协议。
(1)通用的头信息

  Request URL:请求的URL
  Request Method:请求的方法 get/post
  1**:正在响应,还没有结束  //100系列 
  2**:成功的响应	//200
  3**:相应的重定向,跳转 //300系列 302
  4**:客户端请求错误   //400系列 404
  5**:服务器错误  //500系列 502

在这里插入图片描述

(2)响应的头信息response
Content-Type:响应的内容类型 text/html
Location:响应跳转的URL,结合着状态码302使用
(3)请求的头信息request
(4)请求的主体
可有可无,如果没有传数据不显示这项
请求过程中表单传递的数据

3.http模块
  可以用来创建web服务器
  http.crrate.Server() 创建web服务器
  listen( )设置端口
  //给服务器添加事件,用于接受请求,以及做出响应
  on('request',(req,res)=>{
    req 请求的对象
    req.url 请求的URL对应的端口号后的部分,格式/login
    req.Method 请求的方法
    res响应的对象
    res.writeHead() 设置响应的状态码和头信息
    res.write()设置响应的内容
    res.end()结束并发送响应
  })
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值