nodejs入门学习

fs文件系统模块

  • 什么是fs文件系统模块
    fs模块是Node.js官方提供的、用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求。

    例如:

  • fs.readFile() 方法,用来读取指定文件中的内容

  • fs.writeFile() 方法,用来向指定的文件中写入内容
    如果要在JavaScript代码中,使用fs模块来操作文件,则需要使用如下的方式导入它:

const fs = require('fs')
fs.readFile(path[,options],callback)

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

const fs = require('fs');
fs.readFile('./11.txt', 'utf-8', function (err, dataStr) {
  console.log(err, 'err')
  if (err) return console.log('读取文件失败!' + err);
  console.log('读取文件成功!' + dataStr);
})

fs.writeFile()的语法格式
fs.writeFile(file, data[, options], callback)
参数1:必选参数,需要指定一个文件路径的字符串,表示文件的存放路径
参数2:必选参数,表示要写入的内容,可以字符串或Buffer对象
参数3:可选参数,表示以什么格式来保存写入的内容,默认值是utf - 8
参数4:必选参数,文件写入完成后的回调函数

fs.writeFile('./11.txt', 'hello world', function (err) {
  if (err) return console.log('写入文件失败!' + err);
  console.log('写入文件成功!');
})
  • fs模块-路径动态拼接的问题

在使用fs模块操作文件时,如果提供的操作路径是以./ 或…/ 开头的相对路径时,很容易出现路径动态拼接错误的问题。
原因:代码在运行的时候,会以执行node命令是所处的目录,动态拼接出被操作文件的完整路径。
解决方案:在使用fs模块操作文件时,直接提供完整的路径,不要提供./ 或…/ 开头的相对路径,从而防止路径动态拼接的问题。

//不要使用 ./或../这样的相对路径
fs.readFile('./11.txt', 'utf-8', function (err, dataStr) {
  if (err) return console.log('读取文件失败!' + err);
  console.log('读取文件成功!' + dataStr);
})

//_dirname 表示当前文件所处的目录
fs.readFile(__dirname + '/11.txt', 'utf8', function (err, dataStr) {
  if (err) return console.log('读取文件失败!' + err.message);
  console.log('读取文件成功!' + dataStr);
})

  • path路径模块
  • 定义:path模块是Node.js 官方提供的、用来处理路径的模块。它提供了一系列的方法和属性,用来满足用户对路径的处理需求。
  • path.join() 方法,用来将多个路径片段拼接成一个完整的路径字符串
path.join([...paths])

const path = require('path')
const pathStr = path.join('/a', '/b/c', 'index.html')
console.log(pathStr) // \a\b\c\index.html

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

使用path.basename()方法,可以获取路径中的最后一部分,经常通过这个方法获取路径中的文件名,语法格式如下:
path.basename(path[, ext])
参数path是一个必选参数,表示一个路径的字符串;
参数ext 是一个可选参数,表示文件扩展名,如果提供了该参数,则获取不带扩展名的文件名;
返回值:表示路径中的最后一部分。

const fpath = '/a/b/c/index.html'
var fullName = path.basename(fpath)
console.log(fullName) // index.html

var nameWithoutExt = path.basename(fpath, '.html')
console.log(nameWithoutExt) // index
  • path.extname(),获取路径中的扩展名部分

path.extname(path)
path参数,表示一个路径的字符串。
返回值:表示路径中的扩展名部分。

const fext = path.extname(fpath)
console.log(fext, '扩展名') // .html
  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值