位置: 编程技术 - 正文

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

  • 小规模纳税人每季度超过30万交税
  • 对方给我开的增值税专票丢失
  • 纳税申报流程视频教程
  • 企业所得税多缴退税规定
  • 报销宽带费属于什么科目
  • 转出未交增值税是借方还是贷方
  • 农产品进项抵扣政策
  • 债务清偿抵充的案例
  • 退货或者销毁处理
  • 年底给职工发啥实物
  • 品种法在制造企业中的运用
  • 企业购买硬件与软件该如何做账?
  • 政府奖励如何记账
  • 残保金每年什么时候申报缴纳
  • 安装设备领用原材料应该用成本还是公允
  • 可转换公司债券可以在一定程度上解决的问题是
  • bios设置定时重启
  • 用U盘安装苹果系统
  • 查找我的iphone怎么添加设备
  • windows7中右键的作用
  • 企业所得税计算方法公式
  • 华硕主板bios更新后开不了机
  • win10 21h1激活密钥
  • 跨年的收入可以在次年冲吗
  • 暂估入账收入会计分录
  • w10的蜘蛛纸牌
  • 除了个税还有什么税
  • nvidia gpu系列
  • 零售业如何盈利
  • php的教程
  • php read
  • 收入汇缴账户可以冻结吗
  • 谈谈cookie的弊端
  • 乌尤尼盐沼的演化过程
  • 支付运费的会计处理
  • [Vue warn]: Error in created hook: “TypeError: Cannot read properties of undefined (reading ‘$on‘)“
  • php读取json数组中指定内容
  • php 字符串处理函数
  • vue3父子传值
  • css5个定位
  • gmt微调
  • 帝国cms使用手册
  • 报销借款分录怎么做
  • PHPCMS num 参数是什么意思?
  • 缴纳印花税需要带公章吗
  • 财政收入的收缴具体包括
  • 织梦网站怎么添加关键词
  • mongodb查询表数据
  • mongodb skip limit
  • 适用5%征收率的范围
  • 购买银行理财产品安全吗
  • 房地产开发企业资质证书
  • 其他收益会计科目解释
  • 出口报关成功
  • 私立幼儿园规模标准
  • 押金无法收回账怎么办
  • 可供分配利润包括哪些
  • 一般纳税人增值税减免政策2023
  • 应付职工薪酬为负数什么意思
  • 电子承兑汇票到期网银上怎么操作
  • 报销单与发票金额不符看什么
  • 建筑行业总产值占我国GDP的比重
  • linux git教程
  • cool file viewer pro是什么软件
  • visio.exe是什么进程
  • centos为什么没有桌面
  • 手动为LiteSpeed安装eAccelerator和XCache的方法分享
  • ExtJS 4.2 Grid组件单元格合并的方法
  • excel中利用条件格式展示数据
  • cocos2dx-3.1.1 win8+eclipse+android开发 初学者容易迷惑的两个问题
  • python 处理mp3
  • 使用nodejs开发后端
  • angular.js
  • nodejs图片上传
  • 图片在线预览html5
  • 安卓手机管家下载
  • Android之SQLite
  • jquery defaultvalue
  • 准予扣除外购的应税消费品已纳消费税税款的是
  • 投诉政府平台在哪里投诉
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设