در این مطلب قصد داریم متدهای مربوط به ماژول path برای کار کردن با مسیرها در Nodejs رو بهتون معرفی کرده و کاربرد اونا رو بهتون توضیح بدیم تا بیشتر با این ماژول مهم آشنا بشید.
ماژول Path یا مسیر، متدهای کاربردی و مفیدی رو در اختیارتون قرار میده که با استفاده از اونا میتونین کارهای مربوط به مسیرها رو انجام بدین و هر چیزی که مربوط به path هست رو مدیریت کنید.
برای استفاده از این ابزار، نیاز به هیچ نصبی نیست. این ماژول یکی از ماژولهای اصلی Nodejs هست که همون موقع که node رو نصب میکنید، این ماژول و ماژولهای اصلی دیگر نصب میشن. برای استفاده از این ماژول در فایل مورد نظرتون، باید در بالای فایل کد زیر رو قرار بدین:
const path = require('path');
با اینکار ماژول path وارد پروژتون میشه و میتونین به راحتی از متدهای اون استفاده کنید.
قبل از اینکه متدهای مربوط به این Module رو خدمتتون معرفی کنم، باید دو ویژگی که در این ماژول در اختیارتون قرار میگیره رو بهتون توضیح بدم.
- path.sep : این ویژگی کاراکتری که برای جداکردن بخشهای مسیر در سیستمعاملهای مختلف مورد استفاده قرار میگیره رو در اختیارتون قرار میده. در ویندوز و در لینوکس و مک میباشد.
- path.delimeter : این ویژگی کاراکتری که برای جداکردن کل مسیرها از یکدیگر مورد استفاده قرار میگیره رو در اختیارتون قرار میده. مثلا برای جدا کردن کل مسیرها از هم در ویندوز از استفاده میشه و در لینوکس از استفاده میشه.
متدهای مربوط به ماژول path
این ماژول متدهای زیر را دارد:
- path.basename()
- path.dirname()
- path.extname()
- path.isAbsolute()
- path.join()
- path.normalize()
- path.parse()
- path.relative()
- path.resolve()
حالا یکی یکی متدهای بالا رو توضیح میدم.
متد path.basename
با استفاده از این متد میتونین آخرین قسمت یا تکه مسیر رو جدا کرده و به دست بیارید. با استفاده از پارامتر دوم میتونین افزونه یا extension اون رو نیز فیلتر کرده و بردارید. بعد از // خروجی هر دستور نمایش داده شده است. مثالهای زیر رو ببینید:
const path = require('path'); path.basename('/test/something'); // something path.basename('/test/something.txt'); // something.txt path.basename('/test/something.txt', '.txt'); // something
متد path.dirname
با استفاده از این متد میتونین دایرکتوری مسیر مورد نظرتون رو بدست بیارید. بصورت زیر:
const path = require('path'); path.dirname('/test/something'); // /test path.dirname('/test/something/file.txt'); // /test/something
متد path.extname
با استفاده از متد میتونین افزونه یا extension مسیر مورد نظرتون رو بدست بیارید. بصورت زیر:
const path = require('path'); path.dirname('/test/something'); // '' path.dirname('/test/something/file.txt'); // '.txt'
متد path.isAbsolute
با استفاده از این متد میتونین مشخص کنید که یک مسیر Absolute یا مطلق هست یا Relative و نسبی. بصورت زیر:
const path = require('path'); path.isAbsolute('/test/something'); // true path.isAbsolute('./test/something'); // false
متد path.join
با استفاده از این متد میتونین 2 یا چند قسمت از مسیر رو به هم متصل کرده و مسیر کاملی رو به دست بیارید. بصورت زیر:
const path = require('path'); const name = 'mohammad'; path.join('/', 'users', name, 'notes.txt'); // '/users/flavio/notes.txt'
متد path.normalize
این متد سعی میکنه که وقتی در مسیر
یا یا استفاده شده است، اون رو نرمالسازی کرده و مسیر واقعی رو بدست بیاره. بصورت زیر:const path = require('path'); path.normalize('/users/flavio/..//test.txt'); // /users/test.txt
متد path.parse
با استفاده از این متد میتونین یک مسیر رو تجزیه و تحلیل کنید و قسمتهای مختلف اون رو بصورت یک Object یا شئ بدست بیارید. این متد اطلاعات زیر رو در قالب یک شئ در اختیارتون قرار میده:
- root : ریشه مسیر
- dir : مسیر دایرکتوری که از root شروع میشه
- base : نام فایل + افزونه یا Extension
- name : نام فایل
- ext : افزونه فایل
مثال زیر رو ببینید:
const path = require('path'); path.parse('/users/test.txt');
خروجی بصورت زیر خواهد بود:
{ root: '/', dir: '/users', base: 'test.txt', ext: '.txt', name: 'test' }
متد path.relative
این متد 2 آرگومان رو قبول میکنه و مسیر نسبی از مسیر اول نسبت به مسیر دوم رو بر پایه مسیری که الان هستیم، برگشت میده و در اختیارمون قرار میده. بصورت زیر:
const path = require('path'); path.relative('/Users/flavio', '/Users/flavio/test.txt'); // 'test.txt' path.relative('/Users/flavio', '/Users/flavio/something/test.txt'); // 'something/test.txt'
متد path.resolve
با استفاده از این متد میتونین مسیر مطلق رو از روی مسیر نسبی بدست بیارید. فرض کنید که در حال حاضر در مسیر خانه یا home هستیم و دستور زیر رو اجرا میکنیم:
const path = require('path'); path.resolve('flavio.txt'); // '/Users/flavio/flavio.txt' if run from my home folder
اگر دو آرگومان رو به این متد ارسال کنید، resolve از آرگومان اول به عنوان پایه آرگومان دوم استفاده میکنه. بصورت زیر:
const path = require('path'); path.resolve('tmp', 'flavio.txt'); // '/Users/flavio/tmp/flavio.txt' if run from my home folder
اگر آرگومان اول با / شروع بشه، مشخص میکنه که خروجی یک مسیر مطلق هست. بصورت زیر:
const path = require('path'); path.resolve('/etc', 'flavio.txt'); // '/etc/flavio.txt'
همونطور که مشاهده کردید با استفاده از ماژول path میتونین هر کاری که بخوایم رو در مورد مسیرها انجام بدیم.
در اینجا میتونین مستندات مربوط به path module رو مشاهده کنید.
اولین دیدگاه این پست رو تو بنویس !