MST

星途 面试题库

面试题:Node.js 中路径操作模块及拼接路径的应用

在Node.js中,如何使用路径操作模块拼接文件路径?请举例说明,假设你有一个基础路径 `/app`,以及一个相对路径 `controllers/user.js`,如何正确拼接这两个路径。另外,解释一下 `path.join()` 和 `path.resolve()` 的区别。
46.5万 热度难度
前端开发Node.js

知识考点

AI 面试

面试题答案

一键面试

在Node.js中,可以使用path模块来拼接文件路径。示例如下:

const path = require('path');
const basePath = '/app';
const relativePath = 'controllers/user.js';
const joinedPath = path.join(basePath, relativePath);
console.log(joinedPath); 

path.join()path.resolve() 的区别:

  • path.join()
    • 该方法使用平台特定的分隔符把全部给定的路径片段连接到一起,并规范化生成的路径。
    • 它只是简单地拼接路径片段,不会解析为绝对路径。例如在上述代码中,path.join('/app', 'controllers/user.js') 会直接拼接成 /app/controllers/user.js,不关心路径是否为绝对路径。
  • path.resolve()
    • 该方法将路径或路径片段的序列解析为绝对路径。
    • 它从右到左处理给定的路径片段,遇到一个绝对路径就会停止,然后将之前的片段与该绝对路径拼接。例如 path.resolve('/app', 'controllers/user.js'),因为 /app 是绝对路径,它会返回 /app/controllers/user.js;如果是 path.resolve('app', 'controllers/user.js'),由于没有绝对路径,它会基于当前工作目录进行解析,比如当前工作目录是 /home/user,那么结果会是 /home/user/app/controllers/user.js