Node.js路径传参时/与\分隔符用法及路径前.的作用解析
Node.js 路径分隔符使用场景
正斜杠 / 的适用场景
- 跨平台开发场景优先使用。Windows、macOS、Linux全平台的Node.js内核都可以正常识别
/作为路径分隔符,不会出现兼容性报错,比如fs.readFile('./src/app.js')这类写法在任意系统下都能正常运行。 - 面向POSIX系统(macOS、Linux、Unix系列系统)开发时,
/是这些系统的原生路径分隔符,写本地路径、拼接系统命令参数时直接使用即可。 - 调用
path.posix系列内置方法处理路径时,输出的路径统一使用/作为分隔符,适合生成固定格式的路径、URL路径等不随运行环境变化的场景。
反斜杠 \ 的适用场景
- 仅在纯Windows专属开发场景下使用:需要调用Windows独有的系统API、拼接仅能在Windows cmd/PowerShell中执行的命令参数时,才需要用
\作为分隔符。注意JS字符串中\本身是转义字符,书写Windows路径时需要双写转义,比如原生路径C:\Program Files\node在JS代码中要写为'C:\\Program Files\\node'。 - 调用
path.win32系列内置方法处理Windows专属路径时,输出的路径会自动使用\作为分隔符,仅适配Windows系统的路径逻辑。
开发提示:日常写业务代码不需要手动硬编码分隔符,优先用
path.join()、path.resolve()等内置方法拼接路径,需要获取当前系统原生分隔符时直接取path.sep即可,能自动适配运行环境,避免跨平台报错。
路径前添加点(
.)的作用 路径前的点是相对路径的固定标记,核心是为了明确路径查找规则,避免Node.js的模块/文件解析逻辑混淆,具体分两种写法:
- 单个点
./:代表当前Node进程的工作目录,也就是你执行node命令时所在的终端目录。
必须加这个点的原因是:如果路径开头既没有点、也不是盘符/根路径开头的绝对路径(比如直接写'config.js'),Node.js不会把它当成相对路径查找本地文件,而是会优先判定为Node.js内置模块,其次去node_modules目录下查找第三方依赖包,很容易出现「找不到模块」的报错。比如require('tools')是找依赖包,require('./tools')才是找当前目录下的tools文件。 - 两个点
../:代表当前目录的上一级目录,用来做相对路径的向上回溯,比如../utils.js就是找当前目录上一级文件夹内的utils.js文件,支持多级拼接,比如../../src/config.js代表向上跳转两级目录后找src下的config文件。
注意:
./开头的相对路径是和终端执行目录绑定的,如果需要始终相对于当前JS文件所在的目录定位文件,推荐用__dirname配合path方法拼接,比如path.resolve(__dirname, './config.json'),不管你在哪个目录下执行启动命令,都能准确定位到目标文件。
内容的提问来源于stack exchange,提问作者Arjun Singh
相关产品推荐
相关产品推荐

