1、node命令路径与js文件路径

node命令路径为node命令所执行的目录,js文件路径指的是你要运行的js所在的目录。

如上图所示: server.js路径为E:\zypnode命令路径我们可以选择 E:\E:\node,即:

E:\zpy>node server.js
E:\>node zpy/server.js

后续我们将通过以上两个不同的node命令来运行server.js文件,分别对本文标题所涉及的一些概念进行测试,毕竟计算机是不是说慌的!

2、相对地址转绝对地址

我们可以通过引入path内置模块,并使用其resolve()方法将相对路径转换为绝对路径。

server.js:

const path = require("path");
console.log(path.resolve("./"));

运行:

E:\zpy>node server.js

结果:

E:\zpy
E:\
3、比较__dirname、__filename以及./

server.js内容:

const path = require("path");

console.log("__dirname: "+__dirname);
console.log("__filename: "+__filename);
console.log("./: "+path.resolve("./"));

E:\zpy>运行命令:

E:\zpy>node server.js

运行结果:

__dirname: E:\zpy
__filename: E:\zpy\server.js
./: E:\zpy

E:\>运行命令:

E:\>node zpy/server.js

运行结果:

__dirname: E:\zpy
__filename: E:\zpy\server.js
./: E:\

小结:

  • __dirname: 返回js所在文件夹的绝对路径
  • __filename: 返回被执行的 js 的绝对路径
  • ./: 返回执行 node 命令的绝对路径
4、再来看一个问题:

server同级创建一个名字为mo.js的文件,该文件内容:

module.exports.siteUrl = "http://www.zhangpeiyue.com";

server.js内容修改如下:

const mo = require("./mo");
console.log(mo.siteUrl);

目前目录结构如下:


E:\zpy>运行命令:

E:\zpy>node server.js

运行结果:

http://www.zhangpeiyue.com

E:\>运行命令:

E:\>node zpy/server.js

运行结果:

http://www.zhangpeiyue.com

通过以上命令运行结果,你会惊讶的发现:在两种不同的node命令路径下,request引入地址采用相对地址"./"的情况下,不仅没有发生异常,而且都可以调用到mo.js!

那是因为request中的路径总是相对于包含它的文件,跟你的工作目录是没有半毛钱关系的。

总结:"./"require() 中使用与__dirname 的效果相同,不会因为运行脚本的目录不同而发生改变。

5、建议

使用require() 时可采用相对路径(./, ../) 的写法,其他务必使用绝对路径。例如:

// 与当前文件同目录下的server.js
path.dirname(__filename) + '/server.js'; // 当前目录的上一级下的zpy文件中的server.js
path.resolve(__dirname, '../zpy/server.js');

node - path路径的更多相关文章

  1. Linux下修改PATH路径

    1.#PATH=$PATH:/opt/lamp/mysql/bin       使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 2.#vi /etc/profi ...

  2. Linux系统下修改环境变量PATH路径的三种方法

    这里介绍Linux的知识,比如把/etc/apache/bin目录添加到PATH中有三种方法,看完之后你将学会Linux系统下如何修改环境变量PATH路径,需要的朋友可以参考下 电脑中必不可少的就是操 ...

  3. 如何修改Window系统下PATH路径以及win8下masm32V11

    如何修改Window系统下PATH路径   //其实这个都是临时性的, 退出dos窗口就没有用了,只是做个笔记罢了   C:\Users\Administrator>    set path=E ...

  4. [转]sudo找不到命令:修改sudo的PATH路径

    sudo有时候会出现找不到命令,而明明PATH路径下包含该命令,让人疑惑.其实出现这种情况的原因,主要是因为当 sudo以管理权限执行命令的时候,linux将PATH环境变量进行了重置,当然这主要是因 ...

  5. 刚开始学java和刚去工作的时候,1.path路径 2.classpath路径 还有JAVA_HOME相当于/dgs这个路径

    把里面bin文件夹下面的可执行文件都配置到path路径下了,以后只要在Dos窗口输入命令就可以运行 无论是在dos窗口下还是在eclispe中只需要配置这个path变量,不需要配置classpath ...

  6. 沿着path路径做动画

    沿着path路径做动画 路径 效果 源码 // // ViewController.m // PathAnimation // // Created by YouXianMing on 16/1/26 ...

  7. Python之os.path路径模块中的操作方法总结

    #os.path模块主要集成了针对路径文件夹的操作功能,这里我们就来看一下Python中的os.path路径模块中的操作方法总结,需要的朋友可以参考下 解析路径路径解析依赖与os中定义的一些变量: o ...

  8. node path模块

    一.在nodejs中path模块时使用频率很高的模块,其中不乏有很多API写得很模糊,但仔细琢磨下来,也不是很难理解. 1.获取文件所在路径 var path = require('path'); v ...

  9. svg(1) path路径

    注: 笔记来自于http://www.jb51.net/html5/72250.html  以及http://blog.csdn.net/u013291076/article/details/2707 ...

随机推荐

  1. zabbix4.4 (server,proxy,agent)安装部署实战

    一. 部署架构图 二. 安装环境及版本信息 操作系统:centos7 zabbix版本: 4.4 mysql: 5.7.28 三.zabbix server安装(192.168.182.132) rp ...

  2. confluent kafka connect remote debugging

    1. Deep inside of kafka-connect start up To begin with, let's take a look at how kafka connect start ...

  3. weblogic12.1.3安装

    weblogic weblogic12.1.3安装 环境: centos7.5 ip: 192.168.0.94 1.安装jdk 2.安装 weblogic 下载.解压安装包 wls1213_dev. ...

  4. git rev-parse介绍;获取commit id

    git rev-parse master^{commit} 是什么意思 显示master提交的SHA1值 if you want to make sure that the output actual ...

  5. 码云clone提示“you do not have permission to pull from the repository”

    使用git进行项目下载,换了电脑,配置了账号和邮箱后,pull一个私有项目的时候,出现如下问题: 原因分析: 由于没有设置Gitee的SSH公钥.生成公钥和配置公钥的办法,可以参考Gitee帮助里面的 ...

  6. 《Fluid Engine Development》 学习笔记3-光滑粒子流体动力学

    用粒子表示流体最热门的方法就是就是光滑粒子流体动力学(Smoothed Particle Hydrodynamics (SPH).) 这种方法模糊了流体的边界,用有限数量的粒子代表流体,该方法的基本思 ...

  7. CF1210A Anadi and Domino

    思路: 很有意思的思维题. 实现: #include <bits/stdc++.h> using namespace std; int check(vector<int>&am ...

  8. 书.Windows网络与通信程序设计

    1.PDF&源码 保存到了 我的网盘fivez79513-->"PDF&源码" 目录中 “Windows网络与通信程序设计(第2版) 完整带书签PDF+源码. ...

  9. solr8.0创建core,报Can't find resource 'solrconfig.xml

    出现这个问题,主要是因为没有找到对应的配置文件, 只需要将solr_home\configsets\_default\conf下的配置文件,拷贝到自己新建的core文件夹下即可解决问题!

  10. 洛谷 题解 P1225 【黑白棋游戏】

    看见很多dalao写了什么双向BFS,蒟蒻表示不会写啊. 怎么办办? 先来分析一下题目,一眼看去就是一个搜索题,考虑DFS与BFS. 先放一份DFS的代码: #include<bits/stdc ...