位置: 编程技术 - 正文

浅析 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)

  • 收到个人开票会计分录怎么做
  • 车间停止生产时间怎么计算
  • 企业所得税视同销售的会计处理
  • 增值税是否计入存货成本
  • 营改增之前的工程造价怎么算
  • 金税盘问题
  • 出租土地使用权属于出租不动产吗
  • 闲置固定资产如何做账
  • 作废的增值税专用发票怎么处理
  • 劳务费税后算税前公式
  • 公司接受投资会计科目
  • 新房购置税怎么算2022
  • 质检实验室布局
  • 预付账款是
  • 境外中资企业转中资企业
  • 小规模餐饮业会计核算
  • 固定资产的知识
  • 关联企业间无偿资金的占用属于借款费用吗
  • 外地预缴企业所得税汇算清缴退税
  • 小规模纳税人进货需要发票吗
  • 技术开发费税收优惠政策
  • 2017 160号文件
  • 建设工程是否可以约定非工程所在地仲裁委仲裁
  • 营改增后房地产公司税种及税率
  • 固定资产清理会计处理例题
  • 对账单和电子回单区别
  • 车船使用牌照税收多少
  • 餐饮费开专票
  • 微软输入法突然变成繁体字怎么改回来
  • 哪些企业可以享受加计扣除
  • deepin阻止关机
  • 预提电费及电费发票到账的会计分录
  • 制作flash动画步骤
  • 大模型训练成本
  • replace.exe进程
  • 长期应收款在哪一章
  • 绿化费会计科目
  • 资产减值对应科目
  • php处理大文件
  • ntpd命令详解
  • 其他免税销售额大于0免税性质代码
  • 取得不规范发票的处理
  • 公对公账号没有卡能取得出来钱吗
  • ps调色的作用
  • 计提事业发展基金分录
  • 员工宿舍水电费计入什么会计科目
  • 做项目前期
  • 福利费要分部门吗
  • 边际贡献总额什么意思
  • 无法支付款项是否缴纳增值税
  • 投资收益的主要形式有
  • 未满一年需要工商年报吗
  • 个人所得税计提会计分录怎么做
  • mysql group by实现原理
  • 注销公司需要承担什么责任
  • 进出口贸易出纳主要做什么
  • 会计科目长期待摊费用
  • 以资抵债如何实现债权和物权的转
  • 股东多缴投资款处理
  • 利润分享并购方法有哪些
  • 下乡扶贫可以报什么岗位
  • 长期股权投资利润调整加折旧
  • 股权变更产生的税费
  • 普通发票和增值发票的区别在哪里
  • 中小型企业会计
  • win8系统如何关闭杀毒系统
  • linux操作系统安装包
  • incredr
  • win7系统搜索不到自己家wi-fi
  • win8注册表损坏进不了系统
  • cocos2dx schedule
  • firefox允许弹出窗口
  • Python连接access数据库
  • Python cx_freeze打包工具处理问题思路及解决办法
  • 个税扣款怎么查询
  • 掌上海关怎么查询
  • 国税车购税征收标准
  • 西安车辆购置税缴纳多少
  • 税务总局2013年65号公告
  • 广东省深圳市地图最新版
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设