用fs文件系统模块
在使用fs模块操作文件时,如果提供的操作路径是以./或../开头的相对路径时,很容易出现路径动态拼接错误的问题
原因:代码在运行的时候,会以执行 node 命令时所处的目录,动态拼接出被操作文件的完整路径
解决方案:
1.在使用fs模块操作文件时,直接提供完整的路径,不要提供./或../开头的相对路径,从而防止路径动态拼接的问题。缺点:移植性非常差,不利于维护
2.使用 __dirname + ‘相对路径’,__dirname表示当前文件所处的目录
1 2 3 4 5 6 7
| const fs = require('fs'); fs.readFile(__dirname+'/files/1.txt','utf-8',function(err,dataStr) { if(err) { return console.log('读取文件失败!'+err.message); } console.log('读取文件成功'+dataStr); })
|
用path路径模块
使用path.join()方法,可以把多个路径片段拼接为完整的路径字符串
1 2 3 4 5 6 7 8 9 10
| const fs = require('fs'); const path = require('path'); const pathStr = path.join(__dirname,'/files/1.txt'); fs.readFile(pathStr,'utf-8',function(err,dataStr) { if(err) { return console.log('读取文件失败!'+err.message); } console.log('读取文件成功'+dataStr); })
|