位置: 编程技术 - 正文

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

  • 退税收入如何做账
  • 顺流交易为什么调整被投资方
  • 残保基金怎么算
  • 一般纳税人建账建几本帐
  • 小规模纳税人购置税控设备
  • 保险摊销什么 时候开始
  • 简易计税项目的分包款为建筑服务劳务费,可以扣除吗
  • 购买商标属于什么费用
  • 蔬菜营销方案案例范文
  • 房地产营改增后开票
  • 兼营小规模纳税人增值税优惠
  • 某物业公司组织工人进入下水道
  • 当月认证失控发票怎么做账处理?
  • 未立项进行建设
  • 电子缴税付款凭证怎么做记账凭证
  • 银行承兑电子汇票到期要怎么操作
  • win10如何设置一键还原系统
  • ppt文件打不开了怎么办
  • 搭建rtmp
  • vue打开窗口
  • vue-router跳转
  • 商业银行贷款的三种基本形式
  • 日本北海道 (© Hiroshi Yokoyama/eStock Photo)
  • 公寓增值税税率是多少
  • sybyl安装教程
  • 个体户缴纳生产经营所得税
  • struts2漏洞检测工具下载
  • 企业一次性收取租金如何缴纳增值税
  • python如何在画布上写字
  • 其他资本公积核算科目
  • 个人所得税专项附加扣除标准一览表
  • 母子公司资产划转的涉税问题
  • 企业预付账款科目设置
  • 成本费用率和成本费用利润率的区别
  • 企业自查补税怎么报税
  • 作废的发票要装订记账凭证吗
  • 入库库存商品
  • 白酒消费税最低计税价格核定范围包括
  • 公积金发票掉了怎么办
  • 水电费分割单能报销吗
  • 税法中特许权费包括哪些
  • 财务人员办理会计事项必须复制或取得原始凭证
  • 当月购进原材料取得税控专用发票
  • 进口环节增值税额
  • 核定征收怎么收
  • 未发货未收款先开具发票怎么账务处理
  • 分公司财务归谁管
  • 增值税专用发票电子版
  • 人力资源公司劳务费发票税率
  • 应付账款负数如何调整账务
  • 企业承担个人所得税分录怎么做
  • 餐饮开票税率
  • 会计一般采用什么科目
  • 计税金额是什么科目
  • windows2008 64位系统下MySQL 5.7绿色版的安装教程
  • win8.1ie浏览器在哪
  • wp_official_1.1.3.apk软件下载
  • solaris 磁盘管理
  • winpe下载u盘启动版
  • win10首个正式版发布日期
  • ubuntu如何清理垃圾
  • mac禁用标志
  • linux sed-i
  • windows7自带的画图软件在哪里打开
  • 用win7的人多吗
  • win7自带防火墙关闭后自己打开啥原因
  • 手写输入界面
  • win8电脑设置
  • opengl 3d engine
  • 详解16型人格
  • javascript内存管理
  • jquery的children方法
  • 关于怀孕在线咨询
  • pdb settrace
  • js基础
  • 北京12366纳税服务平台
  • 廊坊银行辟谣了吗
  • 关联企业之间借款的税收处理
  • 进口退税能退税吗现在
  • 地税和国税是什么关系
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设