node的内置常量__dirname和__filename

基本介绍

__dirname和__filename是node内置的一个常量

  • 内置的意思就是不需要额外去定义它

它的作用就是表示当前所在的地址(__dirname和__filename 表示的地址不同)

  • __dirname当前文件(你用node运行的文件)所在的文件夹地址
  • __filename当前文件的完整地址(精确到你所运行的那个js文件)

1.__dirname              ------------------代码及效果展示

console.log(__dirname); //我在当前文件夹内运行这个js文件打印一下
                        //表示当前文件所在的文件夹地址

运行效果展示:
在这里插入图片描述

2.__filename             ------------------代码及效果展示

console.log(__filename); //打印一下,看看效果
                         //表示当前文件所在的完整地址

执行效果展示:
在这里插入图片描述

常量(__firname/__filename)和地址连用

这里使用__dirname来举例

const fs = require("fs");  //导入模块
fs.readFile(__dirname+"/index.html",function(err,results){  //读取文件
    console.log(__dirname+"/index.html");  //打印当前地址(图中黑色字体)
    console.log(results.toString()); //打印读取到的文件 (图中蓝色字体)
})

结果展示:
在这里插入图片描述

访问上一级怎么办

__dirname和__filename都是到该文件夹下,但是当我们想访问上一级的时候怎么办呢?

  • 这时就用到node的内置模块path

  • path模块里面有一个resolve()

代码效果:

const path = require("path"); //导入模块

//path.resolve()表示的是什么呢?
console.log(path.resolve());         // 结果: D:\test    (node所执行的地址)
console.log(path.resolve(__dirname));// 结果: D:\test\Lession03\path  (和__dirname一样,别是当前文件夹)
console.log(path.resolve(__dirname,"server.js"));      //结果:D:\test\Lession03\path\server.js  (当前执行的文件路径)
console.log(path.resolve(__dirname,"../server.js"));   //结果:D:\test\Lession03\server.js       (访问上一级目录)
console.log(path.resolve(__dirname,"/server.js"));     //结果:D:\server.js      (访问根目录)
console.log(path.resolve(__dirname,"../../server.js"));//结果:D:\test\server.js (访问上级目录的上一级目录)

注意事项:

自定义模块访问的地址均是当前文件所在的地址与node执行地址无关。
在写入地址相关的代码时,要写成绝对地址。模块引入除外。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值