بررسی Node Module و انواع آن

هر برنامه Node.js ماژول‌هایی دارد. این ماژول‌ها بخشی از بلاک‌های سازنده برنامه را تشکیل می‌دهند. آن‌ها به توسعه‌دهندگان کمک می‌کنند تا سریع‌تر کار کنند و کد ساختاریافته‌تری بنویسند. در این مقاله می‌آموزیم که Node Module چیست. همچنین با انواع Node Module آشنا خواهیم شد و روش درست استفاده از آن‌ها در برنامه‌هایمان را بررسی خواهیم کرد.

ماژول در جاوااسکریپت چیست؟

به عبارت ساده، یک ماژول یک قطعه کد جاوااسکریپتی با قابلیت استفاده مجدد است. ماژول می‌تواند یک فایل

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

ماژول‌ها به توسعه‌دهندگان کمک می‌کنند تا در برنامه نویسی به اصل DRY (Don’t Repeat Yourself) پایبند باشند. آن‌ها همچنین به تجزیه منطق پیچیده به قطعات کوچک‌تر، ساده و قابل مدیریت کمک می‌کنند.

انواع Node Module

سه نوع اصلی از Node moduleها وجود دارد که ما به عنوان توسعه‌دهنده Node.js با آن‌ها کار خواهیم کرد که عبارتند از:

  • ماژول‌های Built-in
  • ماژول‌های Local
  • ماژول‌های Third-party

ماژول‌های Built-in

Node.js با چند ماژول خارجی عرضه می‌شود. وقتی Node.js را نصب می‌کنیم، این ماژول‌ها برای استفاده در دسترس هستند. برخی از نمونه‌های متداول از Node moduleهای built-in به شرح زیر است:

  • http
  • url
  • path
  • fs
  • os

می‌توانیم از ماژول‌های built-in با سینتکس زیر استفاده کنیم:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
const someVariable = require('nameOfModule')
const someVariable = require('nameOfModule')
const someVariable = require('nameOfModule')

ما ماژول را با تابع

require
requireلود می‌کنیم. باید نام ماژولی را که می‌خواهیم لود کنیم را به عنوان آرگومان به تابع
require
requireارسال کنیم.

نکته‌ای که باید به آن توجه کنیم این است که نام ماژول باید داخل

' '
' 'باشد. همچنین استفاده از
const
constبرای تعریف متغیر تضمین می‌کند که هنگام فراخوانی، مقدار آن را بازنویسی نمی‌کنیم.

همچنین باید مقدار بازگشتی از تابع

require
requireرا در
someVariable
someVariableذخیره کنیم. می‌توانیم آن متغیر را هر چیزی که می‌خواهیم نام‌گذاری کنیم. اما اغلب می‌بینیم که برنامه نویسان نام همان ماژول را به متغیر می‌دهند. به عنوان مثال:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
const http = require('http')
server = http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'})
res.end('Hello World!')
})
server.listen(3000)
const http = require('http') server = http.createServer((req, res) => { res.writeHead(200, {'Content-Type': 'text/plain'}) res.end('Hello World!') }) server.listen(3000)
const http = require('http') 

server = http.createServer((req, res) => { 
    res.writeHead(200, {'Content-Type': 'text/plain'}) 
    res.end('Hello World!')
})

server.listen(3000)

ما از تابع

require
requireبرای لود ماژول built-in http استفاده می‌کنیم. سپس مقدار بازگشتی را در متغیری به نام
http
httpذخیره می‌نماییم. مقدار بازگشتی از ماژول
http
httpیک آبجکت است. از آنجایی که ما آن را با استفاده از تابع
require
requireلود کرده‌ایم، اکنون می‌توانیم از آن در کد خود استفاده کنیم. برای مثال، ویژگی
.createServer
.createServerرا برای ایجاد یک سرور فراخوانی می‌کنیم.

ماژول‌های Local

هنگامی که ما با Node.js کار می‌کنیم، ماژول‌های local ایجاد می‌کنیم که آن‌ها را لود کرده و در برنامه خود مورد استفاده قرار می‌دهیم. در ادامه بررسی می‌کنیم که چگونه باید این کار را انجام دهیم.

یک ماژول

sayHello
sayHelloساده ایجاد می‌کنیم که یک
userName
userNameرا به عنوان پارامتر می‌گیرد و “hello” و نام کاربر را چاپ می‌کند.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
function sayHello(userName) {
console.log(`Hello ${userName}!`)
}
module.exports = sayHello
function sayHello(userName) { console.log(`Hello ${userName}!`) } module.exports = sayHello
function sayHello(userName) {
  console.log(`Hello ${userName}!`)
}

module.exports = sayHello

ابتدا باید تابع را ایجاد کنیم. سپس با استفاده از سینتکس

module.exports
module.exportsآن را export می‌نماییم. با این حال لزومی ندارد که حتما یک تابع باشد. ماژول ما می‌تواند یک آبجکت، آرایه یا هر نوع داده‌ای را export کند.

چگونه باید ماژول‌های local خود را لود کنیم؟

ما می‌توانیم ماژول‌های local خود را لود کنیم و از آن‌ها در فایل‌های دیگر استفاده کنیم. برای انجام این کار، مانند ماژول‌های built-in، تابع

require
requireرا به کار می‌گیریم.

اما با توابع سفارشی خود، باید مسیر فایل را به عنوان آرگومان ارائه کنیم. در مثالی که داریم ، مسیر

'./sayHello'
'./sayHello'است (که به فایل
sayHello.js
sayHello.jsرفرنس می‌دهد).

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
const sayHello = require('./sayHello')
sayHello("Maria") // Hello Maria!
const sayHello = require('./sayHello') sayHello("Maria") // Hello Maria!
const sayHello = require('./sayHello')
sayHello("Maria") // Hello Maria!

هنگامی که ماژول خود را لود کردیم، می‌توانیم در کد خود به آن رفرنس دهیم.

ماژول‌های Third-party

نکته جالبی که در مورد استفاده از ماژول‌ها در Node.js وجود دارد این است که می‌توانیم آن‌ها را با دیگران به اشتراک بگذاریم. Node Package Manager (NPM) این امکان را برای ما فراهم می‌کند. هنگامی که Node.js را نصب می‌کنیم، NPM نیز همراه با آن نصب می‌شود.

با NPM، می‌توانیم ماژول‌های خود را به عنوان بسته از طریق رجیستری NPM به اشتراک بگذاریم. همچنین می‌توانیم از بسته‌هایی که دیگران به اشتراک گذاشته‌اند، استفاده کنیم.

نحوه استفاده از پکیج‌های third-party

برای استفاده از یک پکیج third-party در برنامه خود، ابتدا باید آن را نصب کنیم. برای نصب یک پکیج می‌توانیم دستور زیر را اجرا کنیم.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
npm install <name-of-package>
npm install <name-of-package>
npm install <name-of-package>

به عنوان مثال، پکیج‌ای به نام

capitalize
capitalizeوجود دارد. این پکیج عملکردهایی مانند بزرگ کردن حرف اول یک کلمه را انجام می‌دهد.

با اجرای دستور زیر پکیج capitalize را نصب می‌کنیم:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
npm install capitalize
npm install capitalize
npm install capitalize

برای استفاده از پکیج نصب شده، باید آن را با تابع

require
requireلود کنیم.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
const capitalize = require('capitalize)
const capitalize = require('capitalize)
const capitalize = require('capitalize)

و سپس می‌توانیم از آن در کد خود استفاده کنیم، به عنوان مثال:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
const capitalize = require('capitalize')
console.log(capitalize("hello")) // Hello
const capitalize = require('capitalize') console.log(capitalize("hello")) // Hello
const capitalize = require('capitalize')
console.log(capitalize("hello")) // Hello

این مثالی که بررسی کردیم یک نمونه ساده است. اما پکیج‌هایی وجود دارند که وظایف پیچیده‌تری را انجام می‌دهند و می‌توانند در زمان ما صرفه‌جویی کنند.

به عنوان مثال، می‌توانیم از پکیج Express.js که یک فریمورک Node.js است استفاده کنیم. این پکیج ساخت اپلیکیشن‌ها را سریع‌تر و ساده‌تر می‌کند.

جمع‌بندی

در این مقاله سعی کردیم تا با انواع Node Module آشنا شویم و روش درست استفاده از آن‌ها در برنامه‌های خود را باهم بررسی کردیم.

دیدگاه‌ها:

alireza-ranjbari

آذر 13, 1402  در  10:22 ق.ظ

مطالبتون واقعا عالی بود

افزودن دیدگاه جدید