In the post
Node.js path.join() Method we saw how path.join() method can be used to join the path segments to form a final path.
In Node.js path module there is also a path.resolve()
method that is used to resolve path segments into an absolute path.
The given path segments are processed from right to left, with each subsequent path prepended until an absolute path is constructed. Method stops prepending more path segments as soon as an absolute path is formed.
After processing all the given path segments if an absolute path has not yet been generated, the current working directory is used to construct an absolute path.
If no path segments are passed, path.resolve() will return the absolute path of the current working directory.
The resulting path is normalized and trailing slashes are removed unless the path is resolved to the root directory.
path.resolve() method syntax
path.resolve([...paths])
...paths is a sequence of path segments of type string that are resolved into an absolute path.
Method returns a String representing an absolute path.
A TypeError is thrown if any of the arguments is not a string.
path.resolve() method Node.js examples
Suppose I have a Node.js app created under nodews directory with that context let's try to use path.resolve() method to see how absolute paths are formed. We'll also use path.join() with the same path segments to give an idea how path.resolve() differs from path.join() method.
1. Passing various path segments
const path = require('path'); console.log(__dirname); const filePath = path.join("app", "views", "mypage.html"); console.log('path.join() output:', filePath); const resolvePath = path.resolve("app", "views", "mypage.html"); console.log('path.resolve() output:', resolvePath);
Output
D:\NETJS\NodeJS\nodews path.join() output: app\views\mypage.html path.resolve() output: D:\NETJS\NodeJS\nodews\app\views\mypage.html
As you can see path.join() just adds the path segment and returns it whereas path.resolve() tries to construct an absolute path using passed path segments. Since it is not able to generate an absolute path after processing all given path segments, the current working directory is used to construct an absolute path.
2. Giving one of the path segments with separator.
const path = require('path'); console.log(__dirname); const filePath = path.join("/app", "views", "mypage.html"); console.log('path.join() output:', filePath); const resolvePath = path.resolve("/app", "views", "mypage.html"); console.log('path.resolve() output:', resolvePath);
Output
D:\NETJS\NodeJS\nodews path.join() output: \app\views\mypage.html path.resolve() output: D:\app\views\mypage.html
As you can see path.join() just adds the path segment and returns it whereas path.resolve() processes the path segments from right to left until an absolute path is constructed. Method is able to form an absolute path when it comes to '/app' path segments.
3. Having more path segments with separator.
const path = require('path'); console.log(__dirname); const filePath = path.join("/app", "/views", "mypage.html"); console.log('path.join() output:', filePath); const resolvePath = path.resolve("/app", "/views", "mypage.html"); console.log('path.resolve() output:', resolvePath);
Output
D:\NETJS\ NodeJS\nodews path.join() output: \app\views\mypage.html path.resolve() output: D:\views\mypage.html
4. Having separator in the rightmost path segment.
const path = require('path'); console.log(__dirname); const filePath = path.join("/app", "/views", "/mypage.html"); console.log('path.join() output:', filePath); const resolvePath = path.resolve("/app", "/views", "/mypage.html"); console.log('path.resolve() output:', resolvePath);
Output
D:\NETJS\NodeJS\nodews path.join() output: \app\views\mypage.html path.resolve() output: D:\mypage.html
5. Using '..' (one level up) as one of the path segments.
const path = require('path'); console.log(__dirname); const filePath = path.join("/app", "/views", "..", "mypage.html"); console.log('path.join() output:', filePath); const resolvePath = path.resolve("/app", "/views", "..", "mypage.html"); console.log('path.resolve() output:', resolvePath);
Output
D:\NETJS\NodeJS\nodews path.join() output: \app\mypage.html path.resolve() output: D:\mypage.html
Here path.resolve() will initially construct the absolute path as D:\views\..\mypage.html which is then normalized to D:\mypage.html
That's all for this topic Node.js path.resolve() Method. If you have any doubt or any suggestions to make please drop a comment. Thanks!
>>>Return to Angular Tutorial Page
Related Topics
You may also like-
No comments:
Post a Comment