node.js 在读写文件时,尽量不要采用相对路径,它容易出问题,建议采用绝对路径。

__dirname,__filename

__filename 和 __dirname 是 Node.js 内置的全局变量

  • 特点是:不用声明就能直接使用

  • 全局变量的含义是:

    • 变量:它们的值是变化的。在不同的文件中值就不同。

    • 全局:在任意地方都可以直接使用。

  • 其中:

    __filename 表示当前文件的完整路径(包含文件名)

    __dirname 表示当前文件的完整存放目录(不包含文件名)

测试使用,在任意代码的任意位置

console.log(__dirname)
console.log(__filename)

在实际进行文件操作的时候,使用绝对路径,只需要在路径前面拼接上.

例如:

// 拼接html5.jpg的绝对路径
// 1) 找到当前文件夹的绝对路径
console.log(__dirname)
const fs = require('fs')
// 2) 加上 html5.jpg
const filePath = __dirname + '\\html5.jpg'
// 走一步,看一步
console.log(filePath)
// 3)读入文件
fs.readFile(filePath,function(err, data) {
  if(err) {
    console.log(err)
    return
  }
  console.log(data)
})

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐