Nodejs,:如何将相对路径转换为绝对路径?

1,320 阅读1分钟

在这个简短的教程中,你将学习如何在Nodejs应用程序中把相对路径转换为绝对路径,并附有实例。

Nodejs中的绝对路径和相对路径

绝对路径是指从应用程序根开始的资源路径,总是以/开头。相对路径是资源的相对路径,它不以/开头。

例如,我们有一个NodeJS应用程序,其目录或文件夹结构如下

empapp
  -src
   --models
    ---employee.js
   --controller
    ---EmpController.js
  -input
   --test.doc
index.html
package.json

如果你在EmpController.js中使用test.doc文件,你如何引用这个test.doc。那么绝对路径是/input/test.doc。

/被视为根或应用程序

而相对路径是 .../input/test.doc ...指的是父文件夹。

在Nodejs中把相对路径转换成绝对路径

Nodejs提供了path module ,用于处理文件路径。

使用以下两种方法将相对路径转换为绝对路径

path.resolve给出test.doc的输入路径为./input/test.doc,我们将看到如何将其转换为绝对路径。

const path = require("path"); 
path.resolve('../input/test.doc'); // give /input/test.pdf

输出是绝对路径,即/input/test.pdf。

一个使用dirname和filename的例子dirname返回当前文件所在的根目录。Filename给出文件的名称

var path = require('path');
console.log('one - ', __dirname);// prints absolute path of an application
var here = path.basename(__dirname__) + '/input/test.pdf' ;

检查给定的路径是绝对的还是相对的

path.isAbsolute()方法检查并返回真--对于绝对路径,否则返回假。

请注意,这个方法只检查文件系统中的路径,与url路径无关,当你在Unix和Linux中使用~时不可靠,并返回错误数据:

var path = require("path");
console.log(__dirname); //b:/nodejsapp
console.log(path.isAbsolute(__dirname)); //true
console.log(path.isAbsolute("../")); //false

另一个可靠的方法是使用resolve和normalize并比较数值

path.resolve(__dirname) === path.normalize(__dirname)