同步异步、文件系统、文件流和http协议、http模块

1.同步和异步

 同步:在主线程中执行,会阻止后续代码的执行,是通过返回值获取结果

 异步:在一个独立的线程执行,不会阻止后续代码的执行,是通过回调函数获取结果

2.文件系统(fs)

 (1)查看文件状态

  statSync(文件的路径) / stat(文件的路径, 回调函数)

    isFile()  查看是否为文件

    isDirectory()   查看是否为目录

 (2)创建目录

  mkdirSync(目录的路径) / mkdir(目录的路径, 回调函数)

 (3)移除目录

  rmdirSync(目录的路径) / rmdir(目录的路径, 回调函数)

  不允许移除有文件的目录

 (4)读取目录

  readdirSync(目录的路径) / readdir(目录的路径, 回调函数)

  读取的结果为数组

 (5)清空写入文件

  writeFileSync(文件的路径, 写入的数据)/writeFile(文件的路径, 写入的数据, 回调函数)

  如果文件不存在,先创建文件然后写入数据

  如果文件已经存在,先清空文件中的内容然后写入数据

 (6)追加写入文件

  appendFileSync(文件的路径, 写入的数据)/appendFile(文件的路径, 写入的数据, 回调函数)

  如果文件不存在,先创建文件然后写入数据

  如果文件已经存在,会在文件的末尾追加写入数据

  练习:使用同步追加写入的方式往文件3.txt中写入数据 '涛哥'

  练习:创建数组,包含一组姓名,遍历数组得到每个姓名,使用异步方法把数据写入到文件stu.txt中

var arr=['张三','王五','李四','肖德'];
//遍历数组
for(var i=0;i<arr.length;i++){
  //console.log(arr[i]);
  fs.appendFile('./stu.txt',arr[i]+'\n',(err)=>{
    if(err) throw err;
  });
}

 (7)读取文件

  readFileSync(文件的路径)/readFile(文件的路径,回调函数)

  格式为buffer数据

 (8)删除文件

  unlinkSync(文件的路径)/unlink(文件的路径, 回调函数)

  练习:使用同步方法删除1.txt,使用异步方法删除2.html

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

//异步
fs.unlink('./2.html',(err)=>{
  if(err) throw err;
});

 (9)检测文件(目录)是否存在

  existsSync(文件的路径)

   存在->true   不存在->false

  练习:如果3.txt文件存在的话,删除该文件;如果mydir目录不存在,创建该目录;都是用同步的方法


if(fs.existsSync('./3.txt')){
  fs.unlinkSync('./3.txt');
}
if(!fs.existsSync('./mydir')){
  fs.mkdirSync('./mydir');
}

 (10)拷贝文件

  copyFileSync(源文件的路径, 目标文件的路径)/copyFile(源文件的路径, 目标文件的路径, 回调函数)

3.文件流

 createReadStream()  创建可读取的流

 createWriteStream()  创建可写入的流

 on('事件名称', 回调函数)    一旦触发事件,会自动调用回调函数,事件名称是固定的

 pipe()   管道,可以将读取的流添加到写入的流

4.http协议

 http:超文本传输协议,是浏览器和web服务器之间的通信协议

 (1)通用头信息

   Request URL:要请求的服务器端的资源

   Request Method:请求的方法,对资源的操作方式   get/post...

   Status Code:响应的状态码

     1**:接收到了请求,还没有作出相应

     2**:成功的响应

     3**:响应的重定向,发生跳转

     4**:客户端错误

     5**:服务器端错误

 (2)响应头信息 response

   Content-Type:响应的内容类型, 解决中文乱码 text/html;charset=utf-8

   Location:设置跳转的URL

 (3)请求头信息 request

 (4)请求主体

   只有传递数据才会显示

5.http模块

 可以创建WEB服务器,给客户端提供资源

const app=http.createServer();//创建WEB服务器

app.listen(8080); //设置端口

app.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、付费专栏及课程。

余额充值