آموزش متدهای مربوط به ماژول path یا مسیر در Nodejs

دسته بندی: آموزش
زمان مطالعه: 4 دقیقه
۲۸ آذر ۱۳۹۷

آموزش متدهای مربوط به ماژول path یا مسیر در Nodejsدر این مطلب قصد داریم متدهای مربوط به ماژول 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 رو مشاهده کنید.

چه امتیازی به این مقاله می دید؟
نویسنده محمد اسفندیاری
بسیار به طراحی وب علاقمندم و به سرعت در حال یادگیری تمام مباحث پیشرفته هستم و دوست دارم که به دیگران هم یاد بدهم.

نظرات کاربران

اولین دیدگاه این پست رو تو بنویس !

ارسال دیدگاه
خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :