位置: 编程技术 - 正文

浅析 NodeJs 的几种文件路径(nodejs实战教程)

编辑:rootadmin

推荐整理分享浅析 NodeJs 的几种文件路径(nodejs实战教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejs到底有啥用,nodejs的典型特点,nodejs总结,nodejs总结,nodejs到底有啥用,nodejs的理解,nodejs总结,nodejs的理解,内容如对您有帮助,希望把文章链接给更多的朋友!

一、挖坑 & 掉坑:

缘起一段这样的代码:

本地运行时一切 OK,线上部署时却死活找不到 ./docs/use.md 这个文件,后来才发现是因为线上启动应用时不是从当前目录启动了,不过为什么启动脚本的位置也会影响这个路径呢,且往下看。

二、填坑:

Node 中的文件路径大概有 __dirname, __filename, process.cwd(), ./ 或者 ../,前三个都是绝对路径,为了便于比较,./ 和 ../ 我们通过 path.resolve(‘./')来转换为绝对路径。

先看一个简单的栗子:

假如我们有这样的文件结构:

在 task.js 里编写如下的代码:

在 model 目录下运行 node task.js 得到的输出是:

浅析 NodeJs 的几种文件路径(nodejs实战教程)

然后在 app 目录下运行 node model/task.js,得到的输出是:

那么,不好意思不是问题来了~T_T,我们可以得出一些肤浅的结论了:

__dirname: 总是返回被执行的 js 所在文件夹的绝对路径

__filename: 总是返回被执行的 js 的绝对路径

process.cwd(): 总是返回运行 node 命令时所在的文件夹的绝对路径

./: 跟 process.cwd() 一样、一样、一样的吗?

我明明记得在 require(‘../lib/common') 里一直都是各种相对路径写,也没见报什么错啊,我们还在再来个栗子吧,还是上面的结构,'model/task.js' 里的代码改成:

在 model 目录下运行 node task.js,一切 Ok,没有报错。然后在 app 目录下运行 node model/task.js,然后很果断滴报错了:

那么这下问题真的都是来了,按照上面的理论,在 app 下运行时,../lib/common.js 会被转成 /Users/guo/Sites/learn/lib/common.js,这个路径显然是不存在的,但是从运行结果可以看出 require(‘../lib/common') 是 OK 的,只是 readFile 时报错了。

那么关于 ./ 正确的结论是:

在 require() 中使用是跟 __dirname 的效果相同,不会因为启动脚本的目录不一样而改变,在其他情况下跟 process.cwd() 效果相同,是相对于启动脚本所在目录的路径。

三、总结:

只有在 require() 时才使用相对路径(./, ../) 的写法,其他地方一律使用绝对路径,如下:

标签: nodejs实战教程

本文链接地址:https://www.jiuchutong.com/biancheng/380840.html 转载请保留说明!

上一篇:nodejs mysql 实现分页的方法(node.js mysql)

下一篇:详解nodejs异步I/O和事件循环(nodejs 异步io)

  • 个体工商户的报税流程
  • 公司注销还能要回钱吗
  • 借款给别的公司收到的利息会计分录怎么写
  • 税控盘280抵扣报税填在
  • 小规模季度超过45万了怎么缴纳
  • 房产租赁合同印花税
  • 工资薪金所得扣税
  • 怎么核算关联企业的借款费用?
  • 企业自有房产的所有权
  • 计提个税会计分录怎么理解
  • 营业费用率说明什么
  • 借用另一家公司名义
  • 制造费用处理
  • 化肥贸易需要什么手续
  • 实收资本印花税减免税优惠政策2019
  • 分期付款股权转让
  • 已经销售但是没货怎么办
  • 临时工的个人所得税怎么算
  • 企业取得代扣代缴个税手续费分录
  • 销项税月底还是年底结0
  • 外派人员计算个人所得税可否有附加扣除
  • 补交以前年度个税怎么做账
  • 房屋租赁公司要交哪些税
  • 个体工商户起征点10万执行时间
  • 资产负债表流动性从强到弱
  • 小规模纳税人的专票可以抵税吗
  • 合伙企业需要交哪些税
  • 微博 照片水印
  • Linux怎么修改账户名
  • pps是啥文件
  • 高薪技术企业研发费用标准
  • php数组函数 菜鸟
  • 股票公允价值减值怎么做账
  • win10 1909无法连接到这个网络
  • 短期借款转长期借款利息
  • 偿还不了债务会怎么样
  • php throw
  • Thinkphp 中 distinct 的用法解析
  • Python中tkinter的 Variable类
  • 小型微利企业如何进行税收筹划
  • 充话费自定额
  • 收到借款利息收入的会计分录怎么做账
  • python删除列表的方法
  • 股权处置时点
  • 汇款和转账有什么区别吗
  • 货物搬运费会计科目
  • 经营所得预缴申报收入总额
  • 航空电子客票行程单是发票吗
  • 教育培训行业税目分类
  • 电子承兑过期了
  • 股东分红会计分录
  • 残保金申报可以随便填吗
  • 过路费怎么抵扣进项税额报表怎么填
  • 工程施工企业的会计科目如何设置
  • 车票抵扣税款
  • xampp3.2.4安装教程与配置
  • Windows server 2003 密码忘了
  • 笔记本电脑bios更新
  • ezulumain.exe是病毒进程吗 ezulumain进程安全吗
  • micc是什么意思中文
  • os x10.8.5
  • linux查看所有硬件信息命令
  • windows8无法安装wps
  • Linux系统开源VPN Openvpn进程异常退出解决方法
  • cocos creator 动画制作
  • unity屏幕截图
  • 批处理转义字符如何
  • python3遍历
  • shell脚本 su
  • pythion
  • jquery实现图片横向移动
  • python集合的基本操作
  • 郑州市高新区税务局地址
  • 个体逾期未申报一天会怎么样
  • 异地预缴的企业所得税带不出
  • 三星电视投屏显示不支持当前文件
  • 社保欠缴可以放弃吗
  • 江苏省定额规则
  • 买下中国需要多少钱?
  • 房屋增值税和土地增值税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设