آموزش Node.js

آموزش نصب و استفاده از ماژول های node.js

ماژول های node.js چه چیزهایی هستند؟

ماژول های node.js: هر فایل جاوااسکریپت و یا لایبراری که بخوایم به پروژه اضافه کنیم و ازش استفاده کنیم،‌ یک ماژول نود جی اس محسوب میشه.

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

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

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

نصب ماژول های node.js بوسیله npm

پیدا کردن ماژول مورد نیاز

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

برای نصب یک ماژول بوسیله npm، باید اسم اون ماژول رو بلد باشید. اما از کجا؟

شاید اصن ما ندونیم برای نیازی که داریم، اصلاً ماژولی داخل npm هست یا نه.

راهش اینه که برید داخل سایت npm و اونجا ویژگی مورد نظرتون رو، یا اسم ماژولی که فکر می کنید باید وجود داشته باشه رو سرچ کنید.

از اینجا میتونید برید داخل سایت npm

نصب ماژولهای node.js در پروژه بوسیله npm

اولین کاری که برای نصب ماژول ها در پروژه باید انجام بدین، آغاز کردن npm در پروژه هست.

این کار با اجرای دستور npm init در ترمینال انجام میشه و یک فایل جیسون به اسم package.json به روت پروژه تون اضافه میشه.

npm init

وقتی با دستور npm init پکیج رو مجهز به npm می کنیم، کلی سوال ازمون می پرسه. از جمله نام پکیج و ورژن و خرت و پرتهای اضافه. خیلی وقتها ما همه این سوالها رو به صورت دیفالت جواب میدیم و اینتر میزنیم.

برای اینجور مواقع، ما میتونیم npm init رو با پرچم y فراخوانی کنیم که خودش به تمام سوالها جواب بله بده و کار رو سریعتر برامون انجام بده.

npm init -y

در مرحله بعد، داخل ترمینال (در روت اپلیکیشن) اسم ماژول رو بعد از دستور npm install یا npm i می نویسیم.

مثلا اگر فرض کنید بخوایم ماژول express رو نصب کنیم از دستور زیر استفاده می کنیم:‌

npm install express
یا 
npm i express

بعد از نصب اولین ماژول در پروژه، خواهید دید که یک فولدر جدید با نام node_modules و یک فایل جدید با نام package-lock.json به پروژه تون اضافه شده.

اگر برید داخل فولدر node_modules، میتونید فایلهای js. مربوط به ماژول های نصب شده تون رو اونجا ببینید.

نصب یک ورژن دلخواه از ماژول های node.js بوسیله npm

دستور npm install که در بالا بهش اشاره کردم، همیشه آخرین ورژن پکیج مورد نظر ما رو پیدا می کنه و نصب میکنه.

اما ممکنه به هر دلیلی (مثلا سازگار نبودن آخرین نسخه با سایر کدهای ما) بخوایم بجای آخرین نسخه، از یک نسخه دلخواه از ماژول استفاده کنیم.

مثلا فرض کنید شما نسخه 1.4.23 ماژول express رو نیاز دارید.

برای اینکه دقیقاً همین نسخه رو نصب کنید، باید بعد از اسم ماژول از علامت @ استفاده کنید و بعدش نسخه مورد نظر رو بنویسید.

npm install express@1.4.23

نصب یک ماژول به صورت سراسری با استفاده از پرچم g-

بعضی از ماژول ها فقط مختص به اپلیکیشن فعلی ما نیستند. ما میتونیم این ماژول ها رو به صورت سراسری در سیستم عامل نصب کنیم.

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

مثلا ماژول nodemon رو در نظر بگیرین. این ماژول برای مانیتورینگ node.js استفاده میشه.

با استفاده از nodemon هروقت که تغییری در فایل ما انجام بشه،‌بدون نیاز به اینکه مجددا با استفاده از دستور node app بیایم و فایلمون رو مجدداً اجرا کنیم، با استفاده از دستور nodemon app و save کردن تغییرات فایلمون، برنامه خود به خود رفرش میشه و ما تغییرات رو می بینیم.

یک همچین ماژولی رو ما معمولا به صورت سراسری نصب می کنیم. نصب سراسری ماژول ها با استفاده از پرچم g- انجام میشه.

npm install nodemon -g

بازگردانی فولدر پاک شده ی node_modules

اگر به هر دلیلی فولدر node_modules پاک بشه پروژه شما نمی تونه ماژول های نصب شده رو بخونه و ارور میده.

اگر به هر دلیلی فولدر node_modulesرو از دست دادین، توی ترمینال (توی روت اپلیکیشنتون) دستور زیر رو بزنین:‌

npm install

دستور npm install میره از فایلهای package.json و package-lock.json نگاه می کنه ببینه ما چه ماژول هایی رو نصب داشتیم.

بعد میره فولدر node_modules رو میسازه و پکیج های ماژول های ما رو اونجا مجدداً دانلود و نصب میکنه. به همین راحتی!

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

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

یک سری دیگه از ماژول ها رو هم خودمون بوسیله پکیج منیجرها (مثل npm و yarn) به پروژه مون اضافه می کنیم.

فرق این دو دسته ماژول اینه که دسته اول رو مستقیم می تونید به برنامه اضافه کنید. اما قبل از ایمپورت کردن ماژول های داخل npm به پروژه، باید فایل کانفیگ npm رو بوسیله دستور زیر ایجاد کنید:

npm init

این دستور رو توی ترمینال، در حالتی که داخل مسیر فولدر پروژه تون قرار داره اجرا می کنید.

برای استفاده از این ماژول ها ، باید اونها رو به فایل پروژه مون اضافه کنیم. وگرنه کار نمی کنن.

برای اضافه کردن ماژول ها از کلمه رزرو شده require استفاده می کنیم.

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

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

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

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

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

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

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

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

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

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

رفع ابهام: استفاده از ثابت const برای ایمپورت کردن ماژول ها الزامی نیست. شما میتونید بجای ثابت const از متغیر var هم استفاده کنید.

گرچه در بیشتر موارد،‌استفاده از ثابت const توصیه میشه.

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

استفاده از گلوبال آبجکت require برای اضافه کردن فایلهای js.

خیلی پیش میاد که شما خودتون انجام کارهای مختلف در برنامه رو دسته بندی می کنید. و انجام هر دسته از کارها رو به یک فایل جداگانه واگذار می کنید.

مثلا ممکنه شما برای لاگین کردن کاربران، یک فایل js. جداگانه از برنامه بنویسید. یا مثلا برای کار با فایلها یک فایل js. جداگانه بنویسید.

این کار خیلی خوبیه و باعث نظم در پروژه و سهولت کدنویسی و سهولت در عیب یابی میشه.

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

تفاوت این کار با ایمپورت کردن ماژول های نصب شده اینه که باید آدرس دقیق فایل مورد نظر رو بنویسید.

فرض کنید ما میخوایم یک فایل به اسم util.js رو داخل فایل جاریمون ایمپورت کنیم.

const utilities = require('./util.js');

در آدرس بالا، کاراکتر نقطه ( . ) به محل فایل جاری ما اشاره می کنه. و بقیه آدرس رو بر اساس اون می نویسیم.

مثلا اگر فایل util.js ما داخل فولدر assets بود، باید اینجوری آدرس دهی کنیم:

const utilities = require('./assets/util.js');
برچسب ها

حامد عسکریان

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

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

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