• 01-Node中的系统模块:fs文件模块、path路径模块、正则、http模块


    一、fs文件模块

    前提:
    const fs = require('fs')  #导入模块
    
    • 1
    • 2
    • fs.readFile()

    读取指定文件内容

    fs.readFile(path[,option],callback)
    参数1:必选,字符串,表示文件路径
    参数2:可选,表示以什么编码格式来读取
    参数3:必选,文件读取完成后,通过回调函数拿到的读取结果
    
    • 1
    • 2
    • 3
    • 4

    示例:

    const fs = require('fs')
    fs.readFile('./01-index.js','utf-8',function(err,dataStr){
        console.log(err)
        console.log('------')
        console.log(dataStr)
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    执行脚本:
    在这里插入图片描述
    回调函数有两个形参err和result,可以通过判断err对象是否为null,来判断读取是否成功

    • fs.writeFile()

    向指定文件写入内容

    fs.writeFile(filw,data[,option],callback)
    参数1:必选,字符串,表示文件路径
    参数2:必选,表示要写入的内容
    参数3:可选,表示以什么编码格式来读取
    参数3:必选,文件读取完成后,通过回调函数拿到的读取结果
    
    • 1
    • 2
    • 3
    • 4
    • 5

    回调函数有两个形参err和result,可以通过判断err对象是否为null,来判断读取是否成功

    注意:
    fs.writeFile()方法只能用来创建文件,不能用来创建路径
    重复调用fs.writeFile()写入同一个文件,新写入的内容会覆盖之前的旧内容

    fs路径动态拼接

    当使用fs读取文件时,若以./或…/开头的相对路径,会出现执行错误的问题。会默认把当前执行node命令的路径与代码中的相对路径拼接起来
    使用绝对路径维护性差

    使用__dirname+文件名 ,__dirname指当前代码文件所处目录

    二、path路径模块

    1、导入

    const path= require('path')
    
    • 1

    2、使用:

    path.join()  #拼接路径
    path.basename()  #获取路径最后一部分,传递两个参数会在获取后进行修改,移除第二个参数内容
    path.extname()  #获取文件扩展名
    
    • 1
    • 2
    • 3

    三、正则模块

    正则表达式.exec(文本内容)
    会将匹配出来的内容放到列表中,使用时获取索引0对应的值
    
    例如:
    regStyle=/<style>[\s\S]*<\/style>/
    regStyle.exec(htmlStr)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    四、http模块

    node官方提供的,创建web服务器,对外提供资源

    导入:
    const http=require('http')
    const server = http.createServer()  #创建一台web服务器
    //为服务器绑定request事件,接受客户端发送过来的消息
    server.on('request', (req,res)=>{
        //req 是请求对象,包含了与客户端相关的数据和属性
        //req.url 是客户端请求的url地址
        //req.method 是客户端的method请求类型
        res.end() 向客户端响应一些内容,并结束这次请求过程
    })
    //启动服务器
    server.listen(80,()=>{
        
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    res.end()中文乱码问题

    设置content-type响应头,告诉客户端浏览器用utf-8编码格式来解析内容
    res.setHeader('Content-Type','text/html:charset=utf-8')
    
    • 1
    • 2

    根据不同url响应不同内容

    server.on('request',(req,res)=>{
        const url = req.url
        let content="

    404

    "
    if(url === '/' || url === '/index.html'){ content='

    首页

    '
    }else if (url === '/about.html'){ content='

    关于

    '
    } res.setHeader('Content-Type','text/html:charset=utf-8') res.end(content) })
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
  • 相关阅读:
    计算机算法分析与设计(12)---贪心算法(最优装载问题和哈夫曼编码问题)
    概率论与数理统计
    JVM基础面试题第一篇
    【异常处理】使用雪花算法的id出现的精度问题
    第四章 文件管理 七、文件共享
    springcloud-config配置中心
    http协议与https协议+UDP协议和TCP协议+WebSocket协议下服务端主动去发送信息+对称加密与非对称加密+get和post请求方式区别详解
    HTML5简介
    [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G
    【RocketMQ】NameServer总结
  • 原文地址:https://blog.csdn.net/CapejasmineY/article/details/126249314