面试题答案
一键面试在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
。