美文网首页
node __dirname 解析 与 fs模块文件操作注意事项

node __dirname 解析 与 fs模块文件操作注意事项

作者: LilyLaw | 来源:发表于2019-08-05 20:06 被阅读0次

node中我们可以使用相对路径,那为什么要用__dirname这个变量来找绝对路径呢???
下面的代码中给大家演示一个小例子:

文件操作 fileOperate.js

// fileOperate.js
const fs = require('fs');

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

fs.readFile('../calc.js','utf8',(err,content)=>{
    if(err) throw err;
    console.log(content);
})

将fileOperate.js 载入 testModule.js

// testModule.js
const testModule = require('./modules/fileOperate.js');

运行 testModule.js


运行结果

文档结构:


文档结构

我们发现一个很奇怪的现象:console.log()打印出来的结果是对的,但是fs模块读文件的时候相对路径是错的,这是为啥呢???

原来fs.readFile()读文件时,文件路径是以入口文件为基准,在此基础上取相对路径
例子里面,入口文件是testModul.js,所以取相对路径就是错的了。

为了防止这种问题发生(项目开发过程中我们可能会把testModule.js 文件移动到任何地方),fs文件操作都取被操作文件的绝对路径

所以fileOperate.js 文件应该改为

const fs = require('fs');

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

fs.readFile(`${__dirname}/../calc.js`,'utf8',(err,content)=>{
    if(err) throw err;
    console.log(content);
})

再运行,就对啦!

相关文章

  • node __dirname 解析 与 fs模块文件操作注意事项

    node中我们可以使用相对路径,那为什么要用__dirname这个变量来找绝对路径呢???下面的代码中给大家演示一...

  • Node.js与文件系统操作(四)

    Node.js中的fs模块与文件系统操作相关,主要用于实现文件系统的操作。fs模块中提供了大量与文件系统相关的操作...

  • Node.js与文件系统操作(一)

    Node.js中的fs模块与文件系统操作相关,主要用于实现文件系统的操作。fs模块中提供了大量与文件系统相关的操作...

  • Node.js与文件系统操作(三)

    Node.js中的fs模块与文件系统操作相关,主要用于实现文件系统的操作。fs模块中提供了大量与文件系统相关的操作...

  • Node.js与文件系统操作(二)

    Node.js中的fs模块与文件系统操作相关,主要用于实现文件系统的操作。fs模块中提供了大量与文件系统相关的操作...

  • 04-文件读写

    fs模块---》操作文件---》io----》node的特长 fs模块是node非常重要的模块,能体现出node的...

  • node.js文件操作

    fs 文件操作用的模块为node.js中的fs模块.因此要提前将其引入. var fs = require('fs...

  • 经验技巧 - 收藏集 - 掘金

    node 核心模块 --fs - 前端 - 掘金fs模块是文件操作的封装,它提供了文件读取、写入、更名、删除、遍历...

  • node.js之文件操作

    与其他模块相同,首先引入fs文件操作模块,使用require引入。node.js的文件操作与php类似,都是一些读...

  • Node.js基本模块

    fs模块 node.js内置的fs模块就是文件系统模块,负责读写文件。与所有其他JavaScript模块不同的是,...

网友评论

      本文标题:node __dirname 解析 与 fs模块文件操作注意事项

      本文链接:https://www.haomeiwen.com/subject/vodvdctx.html