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

一、fs文件模块

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

读取指定文件内容

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

示例:

const fs = require('fs')
fs.readFile('./01-index.js','utf-8',function(err,dataStr){
    console.log(err)
    console.log('------')
    console.log(dataStr)
})

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

  • fs.writeFile()

向指定文件写入内容

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

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

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

fs路径动态拼接

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

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

二、path路径模块

1、导入

const path= require('path')

2、使用:

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

三、正则模块

正则表达式.exec(文本内容)
会将匹配出来的内容放到列表中,使用时获取索引0对应的值

例如:
regStyle=/<style>[\s\S]*<\/style>/
regStyle.exec(htmlStr)

四、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,()=>{
    
})

res.end()中文乱码问题

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

根据不同url响应不同内容

server.on('request',(req,res)=>{
    const url = req.url
    let content="<h1>404</h1>"
    if(url === '/' || url === '/index.html'){
        content='<h1>首页</h1>'
    }else if (url === '/about.html'){
        content='<h1>关于</h1>'
    }

    res.setHeader('Content-Type','text/html:charset=utf-8')
    res.end(content)
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值