nodejs简单操作文件和路径处理

写入文件

const fs = require('fs')
fs.writeFile('./resources/read.txt', '这是文字', 'utf8', function(erro) {
    if (!erro) {
        console.log('写入成功')
    } else {
        console.log('写入失败')
    }
})

读取文件

const fs = require('fs')
fs.readFile('/resources/jsonData.json', 'utf8', function(erro, dataStr) {
    if (erro) {
        console.log('读取文件失败')
    }else {
    	console.log('读取成功')
	    console.log(dataStr)
    }
})

路径问题

使用node执行时候,fs模块使用相对路径(./, …/), fs模块查找是node执行目录加上相对路径,如果node执行目录与执行的js不在同一目录就会出现拼接错误,

例:目录d:\test\nodejs\index.js

fs.readFile('./resources/jsonData.json', 'utf8', function(erro, dataStr) {
    console.log(dataStr)
})
  • 执行目录:d:\test\nodejs\index.js
  • 执行:d:\test\nodejs>node index.js
    • fs查找路径为:d:\test\nodejs\resources\jsonData.json
      
  • 回退路径执行node, d:\test>node ./nodejs/index.js
    •   fs查找路径为 :d:\test\resources\jsonData.json
      

解决办法使用绝对路径

  1. js模块自带属性__dirname(E:\测试实例\静态\nodejs)当前文件的绝对路径(目录), __filename(e:\测试实例\静态\nodejs\readFile.js)当前文件包含路径

  2. 使用内置模块path.join()拼接

    const path = require('path')
     //路径拼接方法中,一个../抵消前面一个路径最多抵消前面到盘符后边的不变
    const pathStr = path.join(__dirname, '/a', '/b/c', '../', './d', 'e')
    console.log(pathStr )//(e:\测试实例\静态\nodejs\a\b\d\e)
    //如果多写几个../最后会成为(e:\d\e)
    
  3. 获取路径后的文件名path.basename(),获取后缀path.extname()

    const path = require('path')
    const UsePath = 'a/b/c/index.html'
    const pathBaseName = path.basename(UsePath) //index.html
    const pathBaseName = path.basename(UsePath, '.html') //index
    const pathBaseName = path.basename(UsePath, '.txt') //index.html
    //获取后缀
    const pathExtName = path.extname(UsePath) //.html
    

关于写入文件

fs.writeFile(‘’)只能创建文件不能创建路径,同时只能是覆盖内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值