位置: 编程技术 - 正文

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

  • 公司车船使用税会计分录
  • 拍卖行如何征税呢
  • 企业所得税汇算清缴操作流程
  • 哪些企业适用于品种法
  • 一般纳税人的发票抵扣进项税额
  • 基本账户转到一类卡
  • 手工发票有没有期限
  • 开具银行资信证明
  • 计算产品当月生产成本
  • 申请发票增额有没有什么条件
  • 补充医疗保险能自己交吗
  • 未开票收入已报税怎么办
  • 公司年会聚餐的简短讲话
  • 公司老账怎么处理
  • 冲以前年度成本会计处理
  • 小规模纳税人销售额
  • 事业单位结转资金和结余资金区别
  • 事业单位库存物品
  • 劳务公司计提工资怎么算
  • 提取职工福利费计入什么科目
  • 事业单位去年的年假今年可以休吗
  • 劳务公司注销了,未出的款怎么走账
  • 申报文化事业建设费
  • 缴纳滞纳金计入什么科目
  • 公司结算工资
  • 所有的固定资产都有残值率吗
  • 制造费用分配的的标准是什么?
  • 税控盘管理费会计分录
  • 设计服务交文化建设税吗
  • 普通支票如何转账
  • 应收账款的账面余额公式
  • 收到分包公司工程发票收入怎么做账
  • 反结账是什么意思怎么取消
  • php string函数
  • 政府会计制度固定资产折旧哪个月开始计提
  • 工作组只能看到自己
  • vite + vue + ts 自动按需导入 Element Plus组件,并如何解决按需引入后ElMessage与ElLoading 的问题(找不到名称“ElMessage”问题。)
  • vite报错
  • 补提所得税费用可以直接计入当期
  • pca降维的原理
  • d2loader does not recognize
  • 增值税发票复印件可以入账吗与原件一致
  • 小型微利企业增值税优惠政策2023最新
  • 工会经费计提的比例
  • 个人社保进费用,还要报个税么
  • 关联企业的费用包括
  • 生产工人工资属于生产过程中发生的费用吗
  • 联营扣点怎么做账
  • 出货后90天付款
  • sql server 防止表锁死
  • 生育津贴和产假工资就高原则
  • 卖二手车买卖
  • 公司给别人公司过账应该注意哪些
  • 劳务费属于哪个会计科目
  • 发票找不到了怎么操作
  • 纳税人财务核算内容包括
  • 小微企业免征增值税优惠
  • mysql数据库性能监控
  • ksysslim.exe
  • 如何在xp系统中调整移动硬盘
  • directx?
  • 两种方法解决一半模型的问题
  • windows文件丢失怎么修复
  • win10桌面图标显示错误
  • linux网络设置在哪里
  • 系统映像不存在怎么重装系统
  • node.js 10实战
  • qq仿ios
  • crontab每秒执行一次命令
  • 批处理命令不允许用户在文件夹内的文件
  • python进阶视频
  • android iframe
  • html5webview交互
  • nodejs搭建网站
  • unity3d初学者教程视频
  • 今天百度汉语
  • 钢材出口关税税率是多少
  • 上海自贸试验区临港新片区
  • 郝姓家谱辈分查询
  • 金三是什么鱼竿?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设