NodeJS第三章 同步和异步、文件系统模块(fs)、http协议、http模块(附带详细代码解释)

目录

一.同步和异步

二.文件系统模块(fs)

三.http协议

四.http模块


一.同步和异步

  1. 同步执行:在主程序执行,会阻止主程序后续代码执行
  2. 异步执行:将回调函数放入到事件队列中,不会阻止主程序后续代码的执行
  3. 同步API和异步API

    1.  同步API:在主程序执行,会阻止主程序后续代码执行,通过返回值获取结果
    2. 异步API:在一个独立的线程执行,不会阻止主程序后续代码执行,通过回调函数来获取结果,最后是将回调函数放入到事件队列中

二.文件系统模块(fs)

        用于操作服务器端的文件、文件分为目录形式和文件形式、不属于全局模块,需要先引入,才能调用API

  1. 查看文件的状态
    1.  statSync(文件的路径)
    2. stat( 文件的路径, 回调函数 )
    3. isFile()  是否为文件
    4. isDirectory()  是否为目录
      1. 同步执行
        var s = fs.statSync('./node_modules')
        console.log(s)  
        console.log(s.isFile())
        console.log(s.isDirectory())
      2. 异步执行,有回调函数
        var s = fs.stat('./01_1.js',(err,s)=>{
            if(err){
                throw err
            }
            console.log(s)
            console.log( s.isFile())
            console.log( s.isDirectory())
        })

  2.  清空写入文件
    1. writeFileSync(文件的路径, 写入的数据)
    2. writeFile(文件的路径, 写入的数据, 回调函数)
    3. 如果文件不存在,先创建文件然后写入数据如果文件已经存在,先清空文件中的内容然后写入数据
  3.  追加写入文件
    1. appendFileSync(文件的路径, 写入的数据)
    2. appendFile(文件的路径, 写入的数据, 回调函数)
    3. 如果文件不存在,先创建文件然后写入数据如果文件已经存在,会在文件的末尾追加写入数据
  4. 读取文件
    1. readFileSync(文件的路径) 
    2. readFile(文件的路径, 回调函数)
    3. 读取的结果是buffer格式数据本身为字符串模式的可以转为字符串toString
  5. 删除文件
    1. unlinkSync(文件的路径)
    2. unlink(文件的路径, 回调函数)
  6. 检测文件是否存在
    1.  existsSync(文件的路径)
  7. 文件流
    1. createReadStream()        以流的方式读取文件,内部分成多段
    2. on(事件名称, 回调函数)        添加事件,监听某个动作,一旦监听到会自动调用回调函数,是异步的

三.http协议

  1. 超文本传输协议,是客户端和WEB服务器之间的通信协议
  2.  WEB服务器:为前端提供所需要的资源
  3. 通用头信息
    1. Request URL    请求的网址,表示要请求的服务器端资源
    2.  Request Method    请求的方式,对资源的操作方式,例如:get、post
    3. Status Code    响应的状态码
      1. 1**:接收到了请求,还没有响应
        2**:成功的响应
        3**:响应的重定向
        4**:客户端错误
        5**:服务器端错误
  4. 响应头信息(response)
    1. Location        要跳转的网址,配合着状态码3**使用
    2. Content-Type        响应的内容类型   解决中文乱码   text/html;charset=utf-8
  5. 请求头信息(request)

四.http模块

使用http模块就可以创建WEB服务器

  1. const http=require('http')   //引入http模块
  2. const app=http.createServer()  //创建WEB服务器
  3. app.listen(3000)   //设置端口
  4. //服务器通过事件监听浏览器请求
app.on('request', (req, res)=>{
  req 请求的对象
     req.url  获取请求的资源   格式   '/login'
     req.method  获取请求的方式  GET...
     res 响应的对象
     res.statusCode=状态码    设置响应的状态码,默 
             认是200
     res.setHeader()   设置响应的头信息
     res.write()   设置响应的内容
     res.end()   结束并发送响应
})

每日一句

二人同心,其利断金;同心之言

        "同心协力的人,他们的力量足以把坚硬的金属弄断;同心同德的人发表一致的意见,说服力强,人们就像嗅到芬芳的兰花香味,容易接受。"

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张的俊.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值