Nodejs چه هست؟ بهمراه کاربرد ها و راهنمای نصب

Nodejs چه هست؟
تا قبل از ارائه Nodejs جاوااسکریپت یک زبان سمت کلاینت بود . نودجیاس یک محیط سمت سرور برای اجرای کدهای JavaScript است، در حقیقت، Node.js در نتیجه تلاشهای دولوپرهای زبان جاوااسکریپت برای پیشرفت محیطی به وجود آمد که دولوپرها بتوانند کدهای جاوااسکریپت خود را علاوه بر داخل مرور گر، در سمت سرور نیز در تم یک نرم افزار مستقل اجرا کنند.
بر اساس تعریف ارائهشده در وبسایت رسمی Node.js :
nodejs یک محیط اجرای جاوااسکریپتی است که روی موتور اجرای کد جاوااسکریپت مرور گر کروم تحت عنوان V8 ساخته شده است.
هدف این پلتفرم این است که سرعت اجرای برنامه تحت وب یا شبکه را بهبود دهد و فشار زیاد سرور را در تایم های بهبود ویزیت کم کند.
Node.js در سال ۲۰۰۹ معرفی شده است. پلتفرم Node.js محدود به هیچ مرورگری نیست و قابلیت اجراشدن در انواع سامانهعاملهای ویندوز، لینوکس و مک را داراست.
کاربرد nodejs
چرا میبایست از Node.js استفاده کنیم؟
نودجیاس در مقایسه با PHP و Ruby فوری تر است.
از امنیت بیشتر در مقابل بار اضافی اعمال شده به سرور برخوردار است، خصوصا در تایم وقوع حملههای DDOS که بقیه نرمافزارهای سرور مانند SSH قابل دسترسی و جواب دهنده باقی میمانند.
بیشترین موارد استفاده از نودجیاس مربوط به نوشتن API است، که باعث می شود پیشرفت دهنده های سمت کلاینت بتوانند به دیتا دسترسی داشته و از آنها استفاده کنند.
زیر بودن تایم پاسخگویی در Node.js : Node.js یک پلتفرم single-threaded و asynchronous است. هیچ کدام از پردازش های مربوطه با I/O سایر پردازش ها را متوقف نمیکند. این به معنای آن است که شما میتوانید در یک تایم هم از روی دیسک یک فایل را بخوانید هم یک ایمیل بفرستید و هم بر روی دیتابیس Query بزنید.
بسیاری از وبسرورها بر مبنای روش Threading کار میکنند یعنی برای هر درخواست (request)، یک thread تولید میکند و به تبع آن بخشی از رم (به عنوان مثال ۱ مگابایت) از RAM سرور اشغال میشود و این کار تا جایی که RAM سرور اجازه دهد ادامه مییابد. روش Threading برای کارهایی که نیاز به تعداد بالایی کانکشن همتایم دارند، مناسب نیست.
اما در Node.js هر کدام از درخواست هاییکه به وب خدمات می رسند یک Process تازه Node.js تولید نمی کنند، بجای آن در اغلب وقت ها فقط و فقط یک Process مربوط به Node.js در حال اجرا است که به ارتباطات و درخواستها گوش می دهد. کدهای جاوااسکریپت در Thread اصلی و عملکردهای مربوطه با I/O در Thread های دیگری اجرا میشوند.
ماشین مجازی (Google V8) در Node.js که کدهای جاوااسکریپت را اجرا می کند دارای ویژگی کامپایل در تایم اجرا می باشد. وقتی این ماشین مجازی کدهای جاوااسکریپت را میگیرد در تایم اجرا آنها را به کدهایی نزدیک به کدهای زبان ماشین کامپایل میکند، این کار باعث میشود توابعی که به دفعات صدا زده میشوند با تبدیل شدن به کدهای شبیه کد ماشین به طور قابل ملاحظهای سرعت اجرای کدها را افزایش دهد.
علت آخر استفاده از Node.js جامعه عظیم برنامه نویسهای آن و وجود کتابخانههای open source زیاد آن است. در اغلب مواردی که شما نیاز خواهید داشت، کتابخانه از قبل تعریف شده ای وجود دارد که می توانید از آن استفاده کنید و نیاز نیست برای خیلی از اصول اولیه و مفاهیم پایهای خودتون کدنویسی کنید.
در نمودار پایین قسمت هایی مهم از Node.js قابل مشاهده است:
مزایا Node.js
پاسخگوی تعداد زیادی کاربر و بسیار فوری
زیر بودن تایم پاسخگویی در Node.js
خطایابی بسیار ساده و فوری در این تکنولوژی
جامعه کاربری عظیم
متن باز بودن
سازگاری با سامانه عامل های مختلف لینوکس، ویندوز، مک
ساپورت از Caching
معایب Node.js
nodejs هم معایب ویژه خودش را دارد. سامانههای نوشته شده با NodeJS شدیدا وابسته به برنامه نویس خود هستند چون بدلیل نداشتن یک کتابخانه استاندارد برای JavaScript از استانداردهای پراکندهای برای نوشتن سورس کدها استفاده میشود.
یک مشکل دیگر این است که همچنان nodejs نسبتا تازه است و در واقع همچنان اقدامات ابتدایی خود را پشت سر می گذارد. Nodejs به راحتی در تمام پلتفرم ها موجود نیست و بیشتر میزبانی های اشتراکی از آن ساپورت نمی کنند و این موضوع در زمانیکه موضوع سرمایه مطرح باشد، مشکل تولید می کند، اما به راحتی قابل پیادهسازی روی سرور یا وی پی اس است .
در مجموع میبایست بگوییم Node.js در بعداای نه چندان دور به یکی از زبانهای مهم پیشرفت کسب و کار تبدیل خواهد شد.
بانک اطلاعاتی node js
MongoDB مورد علاقهترین انتخاب در بین پیشرفتدهندگان مختلف نودجیاس است، اما به نظر میرسد که جایگاه دوم از آن بانکهای اطلاعاتی Redis، PostgreSQL و MySQL باشد.
اموزش نصب Node.js در لینوکس
راهکار ابتدا :
همیشه آخرین ورژن stable را از راه لینک پایین دریافت کنید.
https://nodejs.org/dist/
در دستورات نصب نیز با دقت به ورژن دریافت شده، ورژن تازه را جایگزین v10.8.0 در دستورات پایین نمائید.
جهت نصب دستورات پایین را در سرور اجرا نمایید:
1
2
3
4
5
6
7
8
9
|
wget https://nodejs.org/dist/v10.8.0/node-v10.8.0.tar.gz
tar zxvf node–v10.8.0.tar.gz
cd node–v10.8.0
./configure
make ; make install
|
حال جهت اعتماد از صحت نصب دستور پایین را درج کنید:
1
|
node –v
|
درصورتیکه نصب بدون مشکل انجام شده باشد در خروجی شماره ورژن نصب شده را مشاهده خواهید نمود.
راهکار دوم – نصب Nodejs و NPM در CentOS
جهت نصب دستورات پایین را اجرا کنید:
1
2
3
|
yum install –y gcc–c++ make
curl—silent —location https://rpm.nodesource.com/setup_10.x|sudobash-
|
دقت داشته باشید بجای عدد ۱۰ در دستور بالا همیشه آخرین ورژن stable را ازاینجامشاهده و جایگزین نمائید.
بعد از آن دستور پایین را اجرا کنید:
1
|
yum –y installnodejs
|
حال جهت اعتماد از صحت نصب دستور پایین را درج کنید:
1
|
node –v
|
و برای اعتماد از نصب NPM نیز دستور پایین را درج کنید:
1
|
npm –v
|
درصورتیکه نصب بدون مشکل انجام شده باشد در خروجی شماره ورژن نصب شده را مشاهده خواهید نمود.