位置: 编程技术 - 正文

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

  • 全国税务师考试准考证打印
  • 纳税筹划的方法有哪些
  • 营业外收支的账务处理
  • 小规模纳税人利息收入增值税税率
  • 工业企业制造费用具体怎么摊
  • 证券准备包括什么
  • 利息股息红利所得个人所得税税率
  • 接受税务稽查补缴所得税账务处理怎么做?
  • 城投公司代表政府出资工程交税吗
  • 机动车统一发票税率多少
  • 继承或赠与所得的房产
  • 小规模纳税人日用品增值税税率
  • 招投标费用如何收取
  • 推广费属于什么税收编码
  • mac怎么访问路径
  • 财产租赁所得个人所得税怎么申报
  • mac系统屏幕
  • 苹果Mac系统怎么切换输入法
  • php glob
  • win11绿屏是什么原因
  • 产品外包装的作用
  • 垫付员工保险费的会计科目
  • 农产品增值税进项税额
  • msmpeng.exe 是什么
  • 原始凭证填的基数怎么填
  • 固定资产残料收税吗
  • 存货盘盈盘亏影响当期利润吗
  • 企业财务管理的对象是什么
  • 项目资本金现金流量表现金流入
  • php 无限级分类
  • golang、python、php、c++、c、java、Nodejs性能对比
  • 工装费用会计分录
  • 手把手教你win7换主板不重装系统的方法
  • 公司注销剩余的发票怎么作废
  • 大陆工作的香港人可以开基金账户吗
  • mongodb27017
  • 固定资产的会计政策有哪些
  • 银行转账支付凭证有效期多久
  • 银行日记账期初余额写哪儿
  • access怎么提取数据
  • 交易性金融资产入账价值怎么计算
  • 在资产减值准备中符合条件可以转回的有
  • sql查询出各科成绩单
  • 取报销凭证的步骤
  • 进项税额转出是什么科目
  • 收到的现金货款转到公户备注往来款可以吗
  • 总公司给分公司拨款属于什么
  • 债券票面利率与期限成正比
  • 主营业务成本借贷方向增减
  • 职工薪酬怎么核算
  • 专票当普票用进项需要转出吗
  • 无法支付的款项应计入
  • 利润表的编制方法和步骤实操
  • 关闭terminal monitor
  • sql server常用管理工具中,用于访问
  • 苹果电脑dock栏是什么意思
  • win7 64位系统无法使用银行网银怎么办? IE9浏览器无法使用农业银行网银的解决方法
  • window8开机
  • windows8触摸屏手势设置
  • Win7 SP1补丁32/64位 2015年1月汇总篇(内附下载)
  • ubuntu安装多个cuda
  • centos查看硬件设备
  • win8程序和功能在哪
  • linux的截图工具
  • window10显示重启提示
  • input submit、button和回车键提交数据详解
  • javascript date format
  • js的正则表达式
  • javascript中
  • 从《AndEngine游戏开发实践指南》开始,学习AndEngine引擎
  • 浅析科学发展观的核心立场
  • dos命令chkdsk
  • react jss
  • unity3ds
  • json数据格式的理解
  • 河源市人民医院上班时间
  • 涉农项目有哪些项目
  • 深圳税务 qzzn
  • 如何做好税务党建工作
  • 增值税专票红冲退税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设