Node.js 根据文件的相对路径获取绝对路径

使用 path.resolve() 方法从 Node.js 中的相对路径获取文件的绝对路径,例如 path.resolve('./some-file.js')resolve() 方法会将提供的相对路径解析为绝对路径。

const {resolve} = require('path');
// 如果使用 ES6 模块语法
// import { resolve } from 'path';

const absolutePath = resolve('./another-file.js');

//  /Users/jiyik/workspace/js/another-file.js
console.log(absolutePath);

path.resolve 方法采用一个或多个路径段并将它们解析为绝对路径。

nodejs 获取文件绝对路径

如果在没有传递参数的情况下调用 resolve() 方法,或者传递一个空字符串,它将返回当前工作目录的绝对路径。

const {resolve} = require('path');
// 如果使用 ES6 模块语法
// import { resolve } from 'path';

const absolutePath = resolve('');

// /Users/jiyik/workspace/js
console.log(absolutePath);

nodejs 获取绝对路径目录

指定相对路径时,我们还可以指定上一级目录。

const {resolve} = require('path');
// 如果使用 ES6 模块语法
// import { resolve } from 'path';

const absolutePath = resolve('../aws-cli.txt');

// "/Users/jiyik/workspace/aws-cli.txt"
console.log(absolutePath);

nodejs 获取绝对路径上一级目录

我们可能还会看到正在使用的 __dirname__filename 变量。

console.log(__dirname);

console.log(__filename);

__dirname 变量返回当前模块的目录名。

例如,如果我们在位于 /home/user/my-module.js 的模块中使用 __dirname 变量,则 __dirname 变量将返回 /home/user

__filename 变量返回当前模块的绝对路径。

因此,如果我们在位于 /home/user/my-module.js 的模块中使用 __filename 变量,则 __filename 变量将返回 /home/user/my-module.js

查看笔记

扫码一下
查看教程更方便