node 文件系统模块,path路径模块,http模块,模块化

1.fs文件系统模块

fs模块是node.js官方提供的,用来操作文件的模块,他提供了一系列的方法和属性,来满足用户对文件的操作需求!
 

fs.readFlie() 方法 用来读取指定文件中的内容。

fs.wrtieFlie()方法,用来向指定的文件写入内容。

如果需要在JS代码中,需要引入。 和java 导入类是类似的

const fs=require('rs') 

1.1读取指定文件中的内容。

使用fs.readFlie() 语法格式。

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

常见的文件编码 ASCLL  GB2312 GBK Unicode UTF-8
// 1. 导入 fs 模块,来操作文件
const fs = require('fs')

// 2. 调用 fs.readFile() 方法读取文件
//    参数1:读取文件的存放路径
//    参数2:读取文件时候采用的编码格式,一般默认指定 utf8
//    参数3:回调函数,拿到读取失败和成功的结果  err  dataStr
fs.readFile('./files/11.txt', 'utf8', function(err, dataStr) {
  // 2.1 打印失败的结果
  // 如果读取成功,则 err 的值为 null
  // 如果读取失败,则 err 的值为 错误对象,dataStr 的值为 undefined
  console.log(err)
  console.log('-------')
  // 2.2 打印成功的结果
  console.log(dataStr)
})

1.2写入指定文件

使用 fs.writeFile() 方法,可以向指定的文件中写入内容,语法格式如下:

fs.writeFile(file,data[,options],callback);
参数 1: 必选参数, 需要指定一个文件路径的字符串,表示文件的存放路径。
参数 2: 必选参数, 表示要写入的内容。
参数 3: 可选参数, 表示以什么格式写入文件内容, 默认值是 utf8。
参数 4: 必选参数, 文件写入完成后的回调函数。
2、fs.writeFile()的示例代码

案例:

// 1. 导入 fs 模块
const fs = require('fs')

// 2. 调用 fs.readFile() 读取文件的内容
fs.readFile('./成绩.txt', 'utf8', function(err, dataStr) {
  // 3. 判断是否读取成功
  if (err) {
    return console.log('读取文件失败!' + err.message)
  }
  // console.log('读取文件成功!' + dataStr)

  // 4.1 先把成绩的数据,按照空格进行分割
  const arrOld = dataStr.split(' ')
  // 4.2 循环分割后的数组,对每一项数据,进行字符串的替换操作
  const arrNew = []
  arrOld.forEach(item => {
    arrNew.push(item.replace('=', ':'))
  })
  // 4.3 把新数组中的每一项,进行合并,得到一个新的字符串
  const newStr = arrNew.join('\r\n')

  // 5. 调用 fs.writeFile() 方法,把处理完毕的成绩,写入到新文件中
  fs.writeFile('./files/成绩-ok.txt', newStr, function(err) {
    if (err) {
      return console.log('写入文件失败!' + err.message)
    }
    console.log('成绩写入成功!')
  })
})

2.path路径模块

前言?处理路径动态拼接的问题。

在使用 fs 模块操作文件时, 如果提供的操作路径是以 ./ 或 ../ 开头的相对路径时,很容易出现路径动态拼接错误的问题。 为什么要处理。

原因:代码在运行的时候,会执行node命令时,所处的目录,动态拼接出被操作文件的完整路径

解决方案?在使用fs模块操作文件时,直接提供完整的路径,不要提交./或../开头的相对路径。从而防止路径动态拼接的问题。

fs.readFlie('./files/1.txt','utf8',function(err,dataStr){

    if(err) return console.log('读取文件失败' + err.message)
    console.log(dataStr)

})
// __dirname 表示当前文件所处的目录
fs.readFile(__dirname + './files/1.txt','utf8',function(err.dataStr{

    if(err) return console.log('读取文件失败' + err.message)    
    console.log(dataStar)
}))

什么是Path 路径模块 

path模块是Nods.js官方提供的,用来处理路径的模块,它提供了一系列的属性和方法来满足用户对路径的处理需求。

path.join() 方法。用来将多个路径片段拼接昵称一个完整的路径字符串

path.basename()方法 用来从路径字符中,将文件名解析出来

同时需要导入所需要支持的 

const path = require('path')

2.1路径拼接 path.join语法格式

path.join([...paths]);

...paths<string> 路径片段的序列

返回值 <string>

const path = require('path');
const fs = require('fs');

// 注意:  ../ 会抵消前面的路径
// const pathStr = path.join('/a', '/b/c', '../../', './d', 'e')
// console.log(pathStr)  // \a\b\d\e

// fs.readFile(__dirname + '/files/1.txt')

fs.readFile(
  path.join(__dirname, './files/1.txt'),
  'utf8',
  function (err, dataStr) {
    if (err) {
      return console.log(err.message);
    }
    console.log(dataStr);
  }
);

注意:今后凡是涉及到路径拼接的操作,都要使用path.join()方法进行处理,不要直接使用+进行字符串的拼接。

2.2获取路径中的文件名

path.basename()方法 可以获取路径中的最后一部分,经常通过这个方法获取路径中的文件名,

path.basename(path[,ext])
path必选参数,表示一个路径的字符串
ext 可选参数,表示文件扩展名
返回 的是路径中的最后一部分。

实际:

const path = require('path');

// 定义文件的存放路径
const fpath = '/a/b/c/index.html';

const fullName = path.basename(fpath)
console.log(fullName)//输出 index.html

const nameWithoutExt = path.basename(fpath, '.html');
console.log(nameWithoutExt);//输出 index

2.3path.extname() 语法

使用path.extname()语法,可以获取路径中的最后一部分,经常通过这个方法获取路径中的扩展名。

path.extname(path);
path 必须按参数 表示一个路径的字符串
返回 得到扩展名字字符串

实例  可以获取到index.html 

const path = require('path')

//这是文件的存放路径
cont fpath= '/a/b/c/index.html'
cont text path.extname(fpath)
console.log(text)

3.http 模块

http模块是node js 官方提供的,用来创建web服务器的模块,通过http模块提供的http.createSever()方法,就能方便的把一台普通的电脑,变成一台web服务器。

如果希望使用http模块创建web服务器,,则需要先导入它

const http = require('http')

4.模块化

什么是模块化,模块化是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程,对于整个系统来说,模块是可组合,分解和更换的单元。

同时 模块化带来的好处例如?

1.提高了代码的可复用性。

2.提高了代码的可维护性。

3.可实现按需加载。

4.1 模块化规范

1.使用什么样的语法来引用模块。

2.在模块中使用什么样的语法格式向外暴露成员

规范化模块的好处:大家都遵守同样的模块化规范写代码,降低了沟通的成本,极大方便了各个模块之间的相互调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值