Node.js模块中./与../路径语法的区别解析
Node.js 模块导入中
./ 和 ../ 的区别 在Node.js的模块导入场景里,./ 和 ../ 都是相对路径标识,核心逻辑和终端里的含义一致,但要结合当前代码文件的位置来理解:
./ 的作用
- 代表当前编写代码的文件所在的目录,用来导入和当前文件处于同一目录下的模块。
比如案例2中的const ob = require("./exportObject");,说明exportObject.js(Node.js会自动补全.js等后缀)和当前执行这条语句的文件在同一个文件夹里。
../ 的作用
- 代表当前编写代码的文件所在目录的上一级目录,用来导入父目录或父目录下子文件夹里的模块。
比如案例1里的let arr = require("../country/state/city/index");,假设当前代码文件在project/src/handlers/目录下,那么../会先跳转到project/src/目录,再依次进入country/state/city/文件夹找到index.js;同理../utilities/utils/index是跳转到上一级目录后,进入utilities/utils/文件夹加载index.js。
关键注意点
- Node.js处理模块相对路径时,是以当前执行
require语句的文件所在目录为基准,而不是终端的工作目录——这是和终端cd命令的核心区别,终端是基于你当前打开的工作目录跳转,模块导入完全跟着文件位置走。 - 相对路径必须以
./或../开头,否则Node.js会默认你要导入的是Node.js核心模块(比如require('fs'))或者node_modules里的第三方包。
内容的提问来源于stack exchange,提问作者Avik Biswas
相关产品推荐
相关产品推荐

