آموزش Node.js

آموزش نود جی اس Node.js – جلسه چهارم: global object ها در نود جی اس

گلوبال آبجکت چیست؟

به کلاسهایی که بدون نیاز به ایمپورت کردن لایبراری های بیرونی، در node.js در دسترس هستن، global object میگیم.

یک نمونه از global object ها، console هست که در جلسات قبلی باهاش کار کردیم و توضیح مختصری هم درباره گلوبال بودنش دادیم.

پس اگر جلسه قبلی نخوندین، پیشنهاد میکنم چند دقیقه وقت بذارین و آموزش نود جی اس Node.js – جلسه سوم: اجرای فایلها با Node.js رو بخونین.

لیست global objects در node.js

لیست global object ها در نود جی اس به صورت خلاصه (به همراه لینک صفحه مرجع):

برای دیدن صفحه global objects در سایت اصلی نود جی اس،‌روی این لینک کلیک کنید.

گلوبال آبجکت های dirname و filename

از این دوتا برای گرفتن آدرس دایرکتوری و آدرس فایل استفاده میشه.

و قبل از اسمشون، باید دوتا کاراکتر آندرلاین بذاریم.

گلوبال آبجکت dirname

console.log(__dirname);
-> home/user/codes/node

در کد بالا می بینید که ما با استفاده از dirname__ مسیر فولدری که فایل برنامه ما توش قرار داره رو گرفتیم و در کنسول چاپ کردیم.

گلوبال آبجکت filename

console.log(__filename);
-> home/user/codes/node/app.js

در کد بالا می بینید که ما با استفاده از filename__ مسیر فولدری که فایل برنامه ما توش قرار داره به همراه اسم فایل رو گرفتیم و در کنسول چاپ کردیم.

تفاوت filename و dirname اینه که در filename علاوه بر آدرس فولدر، اسم فایل هم نمایش داده میشه.

گلوبال آبجکت require

از گلوبال آبجکت require در node.js برای ایمپورت کردن ماژول های جدید استفاده میشه.

یعنی ماژول هایی که در خود node.js به صورت گلوبالی در دسترس نیستن رو بوسیله require به پروژه اضافه می کنیم. (تقریباً همون کاری رو انجام میده که دستور import در جاوا انجام میده)

چه ماژولهایی رو میتونیم بوسیله گلوبال آبجکت require به پروژه اضافه کنیم؟

  • ماژول هایی که توی پکیج نصبی نود جی اس بودن و نصب شدن.
  • ماژول هایی که بوسیله پکیج منیجرها (مثل npm و yarn) خودمون نصبشون کردیم.
  • ماژول هایی که خودمون نوشتیمشون. (مثلاً بقیه فایلهای node.js که توی پروژه نوشتیم و میخوایم در صفحه جاری ازشون استفاده کنیم)

طرز کار require در node.js

مثل تموم زبونهای برنامه نویسی، توی نود جی اس هم ایمپورت کردن لابراری ها و ماژولها باید در اول فایل انجام بشه.

پس جای require ها، در اولین خطوط فایل برنامه نود جی اس ماست.

در مثال زیر، ما اومدیم و ماژول path رو بوسیله require به برنامه مون اضافه کردیم.

(ماژول path همراه با نصب نود جی اس برای ما نصب میشه)

برای ایمپورت کردن ماژول ها بوسیله require، ما یک ثابت (به انگلیسی: const) تعریف میکنیم و دستور require به همراه اسم ماژول رو داخل اون می ریزیم.

از اون به بعد، هر کجای برنامه که بخوایم با اون ماژول کار کنیم،‌اسم اون ثابت رو صدا میزنیم. و از اسم اون ثابت استفاده می کنیم.

const masir = require("path");
console.log(masir.basename(__filename));

در مثال بالا ما یک ثابت با نام دلخواه masir تعریف کردیم و require به همراه نام ماژول path رو داخل اون ریختیم.

حالا در سطر دوم، وقتی میخوایم از ماژول path استفاده کنیم، اسم ثابت masir رو به کار می بریم.

توضیح غیرضروری: کد بالا با استفاده از path.basename ، اسم فایل جاری رو از آبجکت گلوبال filename__ استخراج کرده و در کنسول چاپ میکنه.

گلوبال آبجکت process

کاربرد های process global object در node.js :

گلوبال آبجکت process یکی از گسترده ترین گلوبال آیجکت ها در نود جی اس هستش. (که شاید بعداً وقت بشه و یک مطلب آموزشی رو صرفاً بهش اختصاص بدم)

از process برای دسترسی به اطلاعات پردازش، ورژن نود جی اس، پاس دادن آرگومان به ماژول های در حال اجرا و کلی کار دیگه استفاده میشه.

ما در مثال زیر، استفاده از process برای دریافت اطلاعات پردازش و نسخه node.js استفاده می کنیم.

console.log(process.pid);
console.log(process.versions.node);

-> 18456 // process id 
-> 12.18.3 // node.js version

برای یادگرفتن تمام امکانات گلوبال آبجکت process صفحه مربوط به process در داکیومنت های node.js رو مطالعه کنید.

حامد عسکریان

برنامه نویس و عاشق تکنولوژی

دیدگاهتان را بنویسید

دکمه بازگشت به بالا
بستن
بستن