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)
})