03_NodeJs文件系统模块&同步异步

1.同步和异步

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

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

2.文件系统模块

 (1)查看文件状态

  fs.stat(文件的路径, 回调函数)

    回调函数 用来获取结果

     err  可能产生的错误

     s    成功的结果

 (2)读取目录

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

 (3)清空写入

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

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

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

 (4)追加写入

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

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

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

 (5)读取文件

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

   读取的数据,格式默认为buffer

 (6)删除文件

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

 (7)检测文件是否存在

   existsSync(文件的路径)

     存在->true   不存在->false

   练习:如果文件3.txt存在,同步删除该文件;如果目录mydir不存在,则同步创该目录建

 (8)拷贝文件

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

 (9)流

  createReadStream()   创建可读取的文件流

  createWriteStream()   创建可写入的文件流

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

  on(事件名称, 回调函数)  添加事件,一旦事件触发,会调用回调函数;事件名称是字符串格式

3.http协议

 浏览器和WEB服务器之间的通信协议

 http://www.codeboy.com:9999/index.html

 (1)通用头信息

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

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

  Status Code:响应的状态码

    1**:服务器端接收到了请求,还没有做出响应

    2**:成功的响应

    3**:响应的重定向,跳转到另一个URL

    4**:客户端请求错误

    5**:服务器端错误

 (2)响应头信息(response)

  Content-Type:设置响应的内容类型   

       解决中文乱码  text/html;charset=utf-8

  Location:设置响应的重定向中要跳转的URL

 (3)请求头信息(request)

 (4)请求主体

   可有有无,如果有数据传递才会出现

4.http模块

  可以用来创建WEB服务器

const http = require('http');

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

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

//通过事件来接受请求并作出响应

app.on('request', (req,res)=>{

   req  请求的对象

   req.url   获取请求的URL,格式为  '/jianbing'   '/youtiao'

   req.method  获取请求的方法

   res  响应的对象

   res.write()  设置响应的内容

   res.writeHead()  设置响应的状态码和头信息

   res.end()  结束并发送

})

课后任务

(1)复习今天内容,整理思维导图

(2)练习:创建web服务器,设置端口8080,添加事件,根据请求作出响应

    '/list'   响应  '这是商品列表'

    '/index'    响应文件'1.html',先读取文件,然后把读取的内容作为响应的内容

    '/study'   跳转到 http://www.tmoo.cn

    其它    响应状态码404    not found

(3)预习nodejs第4天

 

注意路径  !!

/*练习:创建web服务器,设置端口8080,添加事件,根据请求作出响应
    '/list'   响应  '这是商品列表'
    '/index'    响应文件'1.html',先读取文件,然后把读取的内容作为响应的内容
    '/study'   跳转到 http://www.tmooc.cn
    其它    响应状态码404    not found*/
const http = require('http');
const fs = require('fs');
//创建
const app = http.createServer();
//设置端口
app.listen(8082);
app.on('request',(req,res)=>{
    if(req.url ==='/list'){
        res.write();
        //结束并发送
        res.end();
    }else if(req.url ==='/index'){
        fs.readFile('./1.html',(err,sucess)=>{
            if(err){
            throw err;
            }
            res.write(sucess.toString());
            //结束并发送
            res.end();
        });
    }else if(req.url ==='/sduty'){
        res.writeHead(302,{
            Location:'http://www.tmooc.cn'
        });
        res.end();
    }else{
        res.writeHead(404,{
        });
        res.write('404!Not Found!');
        //结束并发送
        res.end();
    }

});

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值