__dirname, __filename, path.resolve, path.join, process.cwd
MasOs系统,在终端中, /Users/a1234/Desktop/
目录下,执行命令 node script/demo.js
\# __dirname - 返回当前模块的目录名
console.log(__dirname);
>>> /Users/a1234/Desktop/script
输出结果: 当前文件所在目录的绝对路径
\# __filename - 返回当前模块文件的文件名,包含绝对路径
console.log(__filename);
>>> /Users/a1234/Desktop/script/demo.js
输出结果: 当前文件的绝对路径
\# path.resolve() - 解析路径,返回绝对路径
console.log(path.resolve());
>>> /Users/a1234/Desktop
console.log(path.resolve('./demo.js'));
>>> /Users/a1234/Desktop/demo.js
console.log(path.resolve(__dirname, './demo.js'));
>>> /Users/a1234/Desktop/script/demo.js
输出结果: Node.js 进程当前工作的目录 + 传入参数(相对路径)的组合
\# path.join() - 拼接路径,返回拼接后的路径
console.log(path.join());
>>> .
console.log(path.join('./demo.js'));
>>> demo.js
console.log(path.join(__dirname, './demo.js'));
>>> /Users/a1234/Desktop/script/demo.js
输出结果: 传入参数(相对路径)的组合
\# process.cwd() - 返回 Node.js 进程当前工作的目录
console.log(process.cwd());
>>> /Users/a1234/Desktop
输出结果: Node.js 进程当前工作的目录
! 总结
优先使用 path.resolve
;可以适配绝大多数场景;
JavaScript 进阶路
方便自己也方便你
推荐阅读
远程工作|初创企业|兼职/实习|项目制结算
熟练使用Typescript 语言进行开发 善用搜索引擎解决工作中遇到的问题 熟练使用命令行工具解决工作问题,包括但不限于Git 了解前端开发技术:React Hooks 原理 / 前端状态管理 / CSS 实现细节 较好的产品意识,愿...
Raymond赞 2阅读 313评论 1
「彻底弄懂」this全面解析
当一个函数被调用时,会创建一个活动记录(有时候也称为执行上下文)。这个记录会包含函数在 哪里被调用(调用栈)、函数的调用方法、传入的参数等信息。this就是记录的其中一个属性,会在 函数执行的过程中用到...
wuwhs赞 17阅读 2.1k
反编译微信小程序获取小程序前端源码wxapkg
研究反编译的原因就是我自己辛苦了半个月写的小程序,忘记备份放在桌面,心急体验Win11系统 重装系统忘记备份源码,后悔莫及。 后来网上找了反编译的教程,反编译已经上线了的小程序 于是自己尝试了一下,真的可...
TANKING赞 12阅读 9.2k评论 7
Nodejs 手动搭建 Express 项目
默认ejs模板只支持渲染以ejs为扩展名的文件,可能在使用的时候会觉得它的代码书写方式很不爽还是想用html的形式去书写。在这里可以使用engine 注册模板引擎的函数,让他处理指定后缀名的文件
yeungx赞 6阅读 8.9k评论 5
PDF 预览和下载你是怎么实现的?
在开发过程中要求对 PDF 类型的发票提供 预览 和 下载 功能,PDF 类型文件的来源又包括 H5 移动端 和 PC 端,而针对这两个不同端的处理会有些许不同,下文会有所提及。
熊的猫赞 7阅读 1.6k评论 1
HTTP,WebSocket 和 聊天室
在涉及到网络层面的相关内容时,不免会联系到 HTTP、TCP、WebSocket 等,但相信大部分人都并不是很清楚其中的一些关系和概念,特别是需要你去做语言表述时,网上有不少优秀的资料和文章,但知识仍需要自己去消化...
熊的猫赞 8阅读 1.6k
npm下载包时报错 Unexpected token '.'问题解决
1. 出现问题当通过nvm切换nodejs版本为16以上时,npm install [package]报错:Unexpected token '.'2. 问题原因该问题不是npm的问题,也不是nodejs的问题,是nvm-windows的问题。3. 解决问题nvm-windows已经更新...
风一样的六六哥赞 20阅读 8.5k评论 8
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。