Node.js به توسعهدهندگان این امکان را میدهد تا با استفاده از جاوا اسکریپت اپلیکیشنهای front-end و back-end بسازند. این فریمورک در سال 2009 توسط رایان دال منتشر شد.
در این مقاله، با Node.js آشنا میشوید و موارد زیر را یاد میگیرید:
- Node.js چیست؟
- تفاوت محیط Node.js با مرورگر.
- چرا باید Node.js را یاد بگیریم؟
- چگونه شروع به کار با Node.js کنیم؟
- منابعی برای کمک به یادگیری Node.js.
Node.js چیست؟
“Node.js یک محیط Runtime جاوا اسکریپت اپن سورس و cross-platform است.”
نقل قول از اسناد Nodejs.dev
به نظر میرسد که پاسخ به این سؤال بسیار ساده است. اما برای یک مبتدی، این تعریف ممکن است سؤالات بیشتری ایجاد کند. پس بیایید آن را تجزیه کنیم و معنی آن را بفهمیم.
- Node.js اپن سورس است.
این بدان معناست که سورس کد Node به صورت عمومی در دسترس است و توسط مشارکتکنندگانی در سرتاسر جهان نگهداری میشود.
- Node.js چند پلتفرمی (cross-platform) است.
- این فریم ورک به هیچ نرم افزار سیستم عاملی وابسته نیست و میتواند روی لینوکس، macOS یا ویندوز کار کند.
- Node.js یک محیط Runtime جاوا اسکریپت است.
وقتی کد جاوا اسکریپت را در text editor خود مینویسید، آن کد نمیتواند هیچ کاری انجام دهد، مگر اینکه آن را execute یا run کنید. و برای run کردن کد خود، به یک محیط Runtime نیاز دارید.
مرورگرهایی مانند گوگل کروم و فایرفاکس دارای محیطهای Runtime هستند. به همین دلیل است که میتوانند کدهای جاوا اسکریپت را اجرا کنند. قبل از ایجاد Node.js ، جاوا اسکریپت فقط میتوانست در یک مرورگر اجرا شود و از آن فقط برای ساخت اپلیکیشنهای front-end استفاده میشد.
Node یک محیط Runtime خارج از مرورگر برای کاربرانش فراهم میکند. این فریمورک بر روی موتور جاوا اسکریپت Chrome V8 ساخته شده است، که این مورد امکان ایجاد اپلیکیشن با استفاده از همان زبان برنامه نویسی جاوا اسکریپت را به شما میدهد که ممکن است با آن آشنا باشید.
تفاوت بین محیطهای Runtime مرورگر و Node.js
هم مرورگرها و هم Node.js ، قادر به اجرای برنامههای جاوا اسکریپت هستند. اما چند تفاوت کلیدی وجود دارد که باید بدانید.
دسترسی به API های DOM
با استفاده از Runtime مرورگر، میتوانید به Document Object Model (DOM) دسترسی داشته باشید و تمام عملیاتهای DOM را انجام دهید. اما Node.js به DOM دسترسی ندارد.
Node تقریباً تمام منابع سیستم را در معرض برنامههای شما قرار میدهد. این بدان معنی است که شما میتوانید با سیستم عامل تعامل داشته باشید، به سیستم فایلها دسترسی داشته باشید و فایلها را بخوانید و بنویسید. اما شما از طریق مرورگر به سیستم عاملها و سیستم فایلها دسترسی ندارید.
Window vs Global object
جاوا اسکریپت دارای یک Global object داخلی است. Global object جاوا اسکریپت برای مرورگر، Window object نامیده میشود. در Node.js ، Global object با نام Global شناخته میشود.
Window object حاوی متدها و properties خاصی است که فقط در محیط مرورگر موجود است.
کنترل نسخههای Runtime
با Node.js میتوانید انتخاب کنید که اپلیکیشن server-side خود را در کدام نسخه اجرا کنید. در نتیجه، میتوانید بدون نگرانی از ناهماهنگیهای خاص نسخه، از ویژگیهای جاوا اسکریپت استفاده کنید.
حال این را با Runtime مرورگر مقایسه کنید. به عنوان یک توسعه دهنده، شما هیچ کنترلی بر نسخه مرورگرهایی که کلاینتهای شما برای دسترسی به اپلیکیشن شما استفاده میکنند، ندارید.
بارگیری ماژولها (Import vs Require keywords)
Node برای ماژولهای CommonJS و ES ، پشتیبانی out-of-the-box ارائه میدهد. شما میتوانید ماژولها را با استفاده از Require keyword (CommonJS syntax) و Import keyword (ES syntax) بارگیری کنید.
برخی از مرورگرهای مدرن از ماژولهای ES پشتیبانی میکنند. این بدان معنی است که میتوانید از ماژولهای import ES استفاده کنید، اما همچنان باید bundle هایی ایجاد کنید تا به مرورگرهای قدیمیتری که از ماژولهای ES پشتیبانی نمیکنند، پاسخ دهید.
برای شروع کار با Node باید چقدر جاوا اسکریپت بلد باشید؟
اگر شما در جاوا اسکریپت بسیار مبتدی هستید، توصیه میکنم از اصول اولیه شروع کنید.
ابتدا با مفاهیم پایه جاوا اسکریپت آشنا شوید، سپس میتوانید به سمت یادگیری ساخت اپلیکیشنهای server-side با Node.js بروید.
هیچ راهی وجود ندارد که بتوانید جاوا اسکریپت را تماماً یاد بگیرید. پس از کجا میتوانید بفهمید که چه زمانی به اندازه کافی برای شروع Node جاوا اسکریپت بلدید؟
مستندات Nodejs.dev فهرستی از موضوعات جاوا اسکریپت را برای یادگیری قبل از شروع Node ارائه میدهد.
هنگامی که به اصول اولیه جاوا اسکریپت مسلط شدید، میتوانید شروع به کار با Node کنید.
چگونه کارمان را با Node.js شروع کنیم؟
بیایید ببینیم چگونه میتوانیم اولین اپلیکیشن Node.js خود را ایجاد کنیم. این بخش به شما نشان میدهد چگونه اسکریپتهای Node را از command line اجرا کنید.
نحوه دانلود و نصب Node.js
ابتدا باید Node.js را دانلود و نصب کنید. راههای مختلفی برای انجام این کار وجود دارد. اگر مبتدی هستید، پیشنهاد میکنم Node را از وبسایت رسمی آن دانلود کنید.

چگونه ورژن Node.js خود را چک کنیم؟
برای بررسی ورژن Node.js ، دستور node –version را در ترمینال خود run کنید.
اگر نصب با موفقیت انجام شده باشد، ورژن Node که نصب کردهاید را مشاهده میکنید. شما باید پاسخی مانند تصویر زیر دریافت کنید.

نحوه اجرای Node.js از command line
بیایید یک برنامه ساده Hello World بسازیم.
یک project folder جدید ایجاد کنید. میتوانید آن را my-project بنامید. project را در code editor خود باز کنید. در داخل پوشه، یک فایل app.js ایجاد کنید.
کد زیر را به app.js اضافه کنید:

همانطور که میبینید، این یک کد جاوا اسکریپت است.
میتوانید این اسکریپت را با اجرای command node مربوطه یعنی <fileName> در command line اجرا کنید. در این مورد، نام فایل app.js است.
برای اجرای Hello world. Program دستور زیر را در ترمینال خود run کنید:
node app.js
شما باید رشته “Hello world.” را ببینید. به این ترتیب، وارد ترمینال خود شدهاید.

تبریک! شما اکنون اولین اپلیکیشن Node.js خود را run کردید.
چرا باید Node.js را یاد بگیرید؟
در اینجا دلایلی وجود دارد که باید Node.js را یاد بگیرید.
Node.js به شما امکان میدهد جاوا اسکریپت را هم روی کلاینت و هم روی سرور بنویسید.
یکی از مزیتهای Node این است که به شما امکان میدهد هم روی front-end و هم روی back-end اپلیکیشن خود کار کنید. و برای این کار از یک زبان برنامه نویسی – جاوا اسکریپت – استفاده میکنید.
کار کردن با جاوا اسکریپت، خبر خوبی برای توسعهدهندگان front-end است. اگر میخواهید کار در server side را شروع کنید، آموختن این فریمورک در مقایسه با یادگیری یک زبان back-end جدید آسانتر است.
Node جامعهای پر از کاربران فعال دارد
همانطور که قبلاً در مقاله اشاره کردم، Node.js اپن سورس است و به طور فعال توسط توسعهدهندگانی از سرتاسر جهان نگهداری میشود.
Node جامعهای پر از کاربران فعال دارد. وقتی در کاری گیر میکنید، میتوانید آموزشها و راهحلهای مناسبی برای مشکلاتتان پیدا کنید.
Node بر روی موتور V8 گوگل کروم ساخته شده است
Node.js بر روی موتور جاوا اسکریپت کروم V8 ساخته شده است. این مهم است زیرا موتور V8 برخی از اپلیکیشنهای in-browser گوگل مانند Gmail را تأمین میکند. به این ترتیب، گوگل سرمایهگذاری زیادی کرده است تا مطمئن شود این موتور عملکرد خوبی داشته باشد.
تقاضا در بازار
بسیاری از نامهای بزرگ مانند Netflix، Uber، Paypal و LinkedIn و غیره از Node استفاده میکنند. به غیر از نامهای بزرگ، بسیاری از استارت آپها نیز برای توسعه اپلیکیشنهای خود از این فریمورک استفاده میکنند.
یادگیری کار با Node.js شما را به یک گزینه مناسب در بازار کار تبدیل میکند.
کتابخانه NPM
کتابخانه NPM یکی از منابع عالی است که با Node.js ارائه میشود.
این کتابخانه دارای رجیستری بیش از یک میلیون پکیج است. یک پکیج یک قطعه کد با قابلیت استفاده مجدد است.
شما میتوانید برای یک کار یا مشکل تکرارشونده، از یک پکیج استفاده کنید و کد را از طریق رجیستری با دیگران به اشتراک بگذارید.
همچنین میتوانید پکیجهایی را که دیگران به اشتراک گذاشتهاند دانلود کنید. برای بسیاری از تسکهایی که توسعهدهندگان به طور منظم انجام میدهند، پکیجهایی وجود دارد.
منابعی برای یادگیری Node
اگر علاقهمند به ساختن اپلیکیشنهای Node.js هستید، استفاده از این منابع انگلیسی را توصیه میکنیم.
8-Hour Node.js and Express.js Course on freeCodeCamp YouTube Channel.
The freeCodeCamp Backend Development and APIs curriculum
همچنین، در زیر لینکی وجود دارد که شامل ویدئویی از رایان دال، در هنگام ارائه Node را در آن میبینید:
Ryan Dahl: Original Node.js presentation at JSConf 2009
نتیجهگیری
خواندن یک مقاله این چنینی، برای داشتن ایده در مورد همه چیزهایی که باید درمورد Node.js بدانید، کافی نیست. هدف از این مقاله ارائه یک دید کلی از این فریمورک بود.
اگر هیچ دیدگاهی درباره این که Node چیست نداشتید، امیدوارم این مقاله به پرسشهای شما پاسخ داده باشد.
در وب سایت نیکان دانش هارون، همچنین مطالبی در مورد دیگر فریمورکهای جاوا اسکریپت، مانند VueJS ، Nextjs ، React js و دگیر کتابخانههای آن مانند کتابخانه JQuery وجود دارد که میتوانید از آنها هم استفاده کنید.
با تشکر از این که این مطلب را خواندید. از کدنویسیتان لذت ببرید!
Leave feedback about this