路径问题
var fs=require('fs');
fs.readFile('./hello.txt',function (err,data) {
if(err){
throw err;
}
console.log(data.toString('utf8'))
});
此处的 ./ 是相对路径 相对的是执行node命令的路径
而不是相对于正在执行的这个js文件来查找hello.txt
例如 在cmd中 进入到该文件路径下 执行: node 文件名; 结果正确执行
若切换到其他盘符下面 执行: node 文件路径; 结果不能正确执行
在哪个盘符下面执行命令 就会在哪个盘符下面寻找文件名
解决办法
使用 __dirname 表示当前正在执行的js文件目录
__filename 表示当前正在执行的js文件的完整路径 即包含文件名
console.log(__dirname) //G:\study\node\day1
console.log(__filename) //G:\study\node\day1\9-1 文件操作注意事项.js
使用方法
var fs=require('fs');
var filename=__dirname+'\\'+'hello.txt'
//不同操作系统下路径中斜杠方向不一样
//linux uinux系统下 __dirname+'//'+'hello.txt'
fs.readFile(filename,function (err,data) {
if(err){
throw err;
}
console.log(data.toString('utf8'))
});