هر برنامه Node.js ماژولهایی دارد. این ماژولها بخشی از بلاکهای سازنده برنامه را تشکیل میدهند. آنها به توسعهدهندگان کمک میکنند تا سریعتر کار کنند و کد ساختاریافتهتری بنویسند. در این مقاله میآموزیم که Node Module چیست. همچنین با انواع Node Module آشنا خواهیم شد و روش درست استفاده از آنها در برنامههایمان را بررسی خواهیم کرد.
به عبارت ساده، یک ماژول یک قطعه کد جاوااسکریپتی با قابلیت استفاده مجدد است. ماژول میتواند یک فایل .js
یا دایرکتوری حاوی فایلهای .js
باشد. میتوانیم محتوای این فایلها را export کرده و از آنها در فایلهای دیگر استفاده نماییم.
ماژولها به توسعهدهندگان کمک میکنند تا در برنامه نویسی به اصل DRY (Don’t Repeat Yourself) پایبند باشند. آنها همچنین به تجزیه منطق پیچیده به قطعات کوچکتر، ساده و قابل مدیریت کمک میکنند.
سه نوع اصلی از Node moduleها وجود دارد که ما به عنوان توسعهدهنده Node.js با آنها کار خواهیم کرد که عبارتند از:
Node.js با چند ماژول خارجی عرضه میشود. وقتی Node.js را نصب میکنیم، این ماژولها برای استفاده در دسترس هستند. برخی از نمونههای متداول از Node moduleهای built-in به شرح زیر است:
میتوانیم از ماژولهای built-in با سینتکس زیر استفاده کنیم:
const someVariable = require('nameOfModule')
ما ماژول را با تابع require
لود میکنیم. باید نام ماژولی را که میخواهیم لود کنیم را به عنوان آرگومان به تابع require
ارسال کنیم.
نکتهای که باید به آن توجه کنیم این است که نام ماژول باید داخل ' '
باشد. همچنین استفاده از const
برای تعریف متغیر تضمین میکند که هنگام فراخوانی، مقدار آن را بازنویسی نمیکنیم.
همچنین باید مقدار بازگشتی از تابع require
را در someVariable
ذخیره کنیم. میتوانیم آن متغیر را هر چیزی که میخواهیم نامگذاری کنیم. اما اغلب میبینیم که برنامه نویسان نام همان ماژول را به متغیر میدهند. به عنوان مثال:
const http = require('http') server = http.createServer((req, res) => { res.writeHead(200, {'Content-Type': 'text/plain'}) res.end('Hello World!') }) server.listen(3000)
ما از تابع require
برای لود ماژول built-in http استفاده میکنیم. سپس مقدار بازگشتی را در متغیری به نام http
ذخیره مینماییم. مقدار بازگشتی از ماژول http
یک آبجکت است. از آنجایی که ما آن را با استفاده از تابع require
لود کردهایم، اکنون میتوانیم از آن در کد خود استفاده کنیم. برای مثال، ویژگی .createServer
را برای ایجاد یک سرور فراخوانی میکنیم.
هنگامی که ما با Node.js کار میکنیم، ماژولهای local ایجاد میکنیم که آنها را لود کرده و در برنامه خود مورد استفاده قرار میدهیم. در ادامه بررسی میکنیم که چگونه باید این کار را انجام دهیم.
یک ماژول sayHello
ساده ایجاد میکنیم که یک userName
را به عنوان پارامتر میگیرد و “hello” و نام کاربر را چاپ میکند.
function sayHello(userName) { console.log(`Hello ${userName}!`) } module.exports = sayHello
ابتدا باید تابع را ایجاد کنیم. سپس با استفاده از سینتکس module.exports
آن را export مینماییم. با این حال لزومی ندارد که حتما یک تابع باشد. ماژول ما میتواند یک آبجکت، آرایه یا هر نوع دادهای را export کند.
ما میتوانیم ماژولهای local خود را لود کنیم و از آنها در فایلهای دیگر استفاده کنیم. برای انجام این کار، مانند ماژولهای built-in، تابع require
را به کار میگیریم.
اما با توابع سفارشی خود، باید مسیر فایل را به عنوان آرگومان ارائه کنیم. در مثالی که داریم ، مسیر './sayHello'
است (که به فایل sayHello.js
رفرنس میدهد).
const sayHello = require('./sayHello') sayHello("Maria") // Hello Maria!
هنگامی که ماژول خود را لود کردیم، میتوانیم در کد خود به آن رفرنس دهیم.
نکته جالبی که در مورد استفاده از ماژولها در Node.js وجود دارد این است که میتوانیم آنها را با دیگران به اشتراک بگذاریم. Node Package Manager (NPM) این امکان را برای ما فراهم میکند. هنگامی که Node.js را نصب میکنیم، NPM نیز همراه با آن نصب میشود.
با NPM، میتوانیم ماژولهای خود را به عنوان بسته از طریق رجیستری NPM به اشتراک بگذاریم. همچنین میتوانیم از بستههایی که دیگران به اشتراک گذاشتهاند، استفاده کنیم.
برای استفاده از یک پکیج third-party در برنامه خود، ابتدا باید آن را نصب کنیم. برای نصب یک پکیج میتوانیم دستور زیر را اجرا کنیم.
npm install <name-of-package>
به عنوان مثال، پکیجای به نام capitalize
وجود دارد. این پکیج عملکردهایی مانند بزرگ کردن حرف اول یک کلمه را انجام میدهد.
با اجرای دستور زیر پکیج capitalize را نصب میکنیم:
npm install capitalize
برای استفاده از پکیج نصب شده، باید آن را با تابع require
لود کنیم.
const capitalize = require('capitalize)
و سپس میتوانیم از آن در کد خود استفاده کنیم، به عنوان مثال:
const capitalize = require('capitalize') console.log(capitalize("hello")) // Hello
این مثالی که بررسی کردیم یک نمونه ساده است. اما پکیجهایی وجود دارند که وظایف پیچیدهتری را انجام میدهند و میتوانند در زمان ما صرفهجویی کنند.
به عنوان مثال، میتوانیم از پکیج Express.js که یک فریمورک Node.js است استفاده کنیم. این پکیج ساخت اپلیکیشنها را سریعتر و سادهتر میکند.
در این مقاله سعی کردیم تا با انواع Node Module آشنا شویم و روش درست استفاده از آنها در برنامههای خود را باهم بررسی کردیم.
دیدگاهها:
alireza-ranjbari
آذر 13, 1402 در 10:22 ق.ظ
مطالبتون واقعا عالی بود