Node.js يك محيط برنامه نويسي براي زبان جاوا اسكريپت ميباشد. شركت هايي مانند IBM و مايكروسافت از نود جي اس استفاده ميكنند. در ادامه به بررسي ويژگيهاي Node.js و موارد استفاده از آن خواهيم پرداخت.
Node.js چيست؟Node.js چيست
Node.js يك پلتفرم كدنويسي سمت سرور است كه بر پايه موتور جاوا اسكريپت مرورگر گوگل كروم كدنويسي شده است. اين پلتفرم توسط رايان داهل در سال ۲۰۰۹ ايجاد شده است و در حال حاضر آخرين نسخه آن ورژن 0.10.36 ميباشد.
بر اساس اعلان مستندات رسمي تعريف Node.Js به شكل زير عنوان ميشود:
Node.js يك پلتفرم ايجاد شده بر پايه موتور جاوا اسكريپت گوگل كروم است كه باعث سهولت ايجاد و مقياسپذيري برنامههاي تحت شبكه ميشود. اين پلتفرم از يك مدل I/O رويداد محور استفاده ميكند كه مسدود نشونده (non-blocking) است و همين امر باعث كاهش فشار موجود بر روي سرور و افزايش كارآيي ميشود و اين امر براي اجراي برنامههاي مبتني بر داده كه بصورت بلادرنگ (Real-Time) بر روي سرورهاي نامتمركز استفاده ميشوند بسيار مناسب است.”
Node.js يك پلتفرم كد باز براي گسترش برنامههاي سمت سرور و تحت شبكه ميباشد. اين پلتفرم بر اساس زبان جاوا اسكريپت نوشته شده است و ميزباني و هاست Nodejs قابليت پيادهسازي بر روي سيستمعاملهاي ويندوز، لينوكس و سيستم عامل كامپيوترهاي اپل را دارد.
اين فريم ورك كتابخانهاي عظيم از ماژولهاي مختلف جاوا اسكريپت را فراهم ميكند كه سهولت در گسترش وباپليكيشن ها را تا حد زيادي فراهم ميآورد.
پيشنهاد وب رمز: معرفي فريم ورك انگولار (AngularJS) و كاربرد آن
ويژگيهاي Node.JS:ويژگي هاي node
در زير برخي از مهمترين ويژگيهاي اين پلتفرم كه باعث ميشود انتخاب اول برنامهنويسها در طراحي سايت باشد ذكر شده است:
غيرهمزماني و رويداد محوري: همهي API هاي كتابخانه Node.js غيرهمزمان ميباشند كه همين امر باعث مسدودناپذيري (non-blocking) آن ميشود. اين بدان معناست كه كه Node.js در بستر سرور هيچگاه در انتظار بازگشت اطلاعات از API نميماند. سرور پس از صدا زدن يك API به سمت API بعدي حركت ميكند و براي اطلاع از وضعيت API قبلي از مكانيزم ثبت رويداد استفاده ميكند.
سرعت بالا: با توجه به اين كه نود جي اس بر پايه نسخه ۸ موتور جاوا اسكريپت گوگل كروم پيادهسازي شده است در اجراي كدها بسيار سريع عمل ميكند.
تك موضوع اما بسيار مقياس پدير: نود جي اس از يك مدل تك موضوعي به همراه حلقه رويددادها استفاده ميكند. مكانيزم رويداد باعث ميشود كه سرور به صورت مسدود نشونده پاسخها را ارسال كند و همين امر باعث ميشود بر خلاف مكانيزمهاي سنتي كه سرور را محدود به چند درخواست براي پردازش درخواستها ميكرد سرور بسيار مقيايسپذير شود.
نود جي اس از يك برنامه تك موضوعي استفاده ميكند و همان برنامه ميتواند سرويسي براي تعداد بسيار بيشتري از درخواست ها نسبت به مكانيزمهاي قديمي سرور مثل HTTP سرور آپاچي فراهم كند.
عدم وجود بافرينگ: اين پلتفرم هيچ دادهاي را بافر نميكند و دادههاي خروجي را به صورت تكهتكه منتشر ميكند.
چه كساني از Node.js استفاده ميكنند؟در زير لينكي مربوط به گيتهاب وجود دارد كه ليستي جامع از پروژه ها، نرمافزارها و شركتهايي كه در ساخت سايت و پروژه ها از Node.js استفاده ميكنند را مشخص كرده است. از جمله مهمترين اعضاي اين ليست ميتوان eBay, General Electric, GoDaddy, Microsoft, PayPal, Uber, Wikipins, Yahoo! و … را نام برد.
براي دريافت پلتفرم جاوا اسكريپت Node.js كليك كنيد.
نمودار زير مهمترين بخشهاي Node.js را به تصوير كشيده است:
node.js - چه كساني از Node.js استفاده ميكنند
كجا از Node.js استفاده كنيم؟در زير برخي از موقعيتهايي كه نود جي اس خودش را به عنوان يك پلتفرم كارا معرفي ميكند آمده است:
– نرمافزارهاي محدوده I/O (ورودي و خروجي)
– نرمافزارهاي جريان دادهاي (Data Streaing)
– دادههاي نرمافزارهاي بلادرنگ (Real-Time)
– برنامههاي مبتني بر JASON API
– برنامههاي تك صفحهاي
كجا از Node.js استفاده نكنيم؟استفاده از اين پلتفرم در برنامههاي متمركز بر CPU توصيه نميشود.Node.js يك پلتفرم بر اساس زبان جاوا اسكريپت است كه امروزه توانسته با استفاده از تكنولوژي رويداد محوري كه درون خود پايه گذاري كرده است، بسياري از برنامهنويسان را جذب خود كند. همراه ليداوب با
Node.js يك پلتفرم بر اساس زبان جاوا اسكريپت است كه امروزه توانسته با استفاده از تكنولوژي رويداد محوري كه درون خود پايه گذاري كرده است، بسياري از برنامهنويسان را جذب خود كند. همراه ليداوب باشيد تا در اين مقاله، اين پلتفرم جذاب را بيشتر بشناسيم.
Node.js را بيشتر بشناسيمNode.js در سال ۲۰۰۹ متولدشده است. نكتهاي كه در همين ابتدا بايد به آن اشارهكنيم اين است كه Node.js يك پلتفرم است نه يك كتابخانه و نه يكفريم ورك جديد مربوط به زبانهاي برنامهنويسي كه تازه كشف شده باشد. ما قرار است از اين پلتفرم استفاده كنيم تا كدهاي جاوا اسكريپتي را روي سرور براي ما اجرا كند. درواقع Node.js، جاوا اسكريپتي است كه سمت سرور اجرا خواهد شد.درباره پلتفرم نيز بايد بگوييم كه يك محيط يا يك فضايي است كه ما از آن بهره ميبريم براي كدنويسي.
Node.js و موتور جاوا اسكريپتي V8
js بر اساس موتور جاوا اسكريپتي گوگل موسوم به V8 طراحي شده است. اگر بخواهيم درباره اين موتور توضيحي مختصر بدهيم بايد بگوييم كه اين موتور توسط گوگل طراحي شده تا كدهاي جاوا اسكريپتي را درون خودش سريعتر از قبل كامپايلر و اجرا نمايد. اين موتور به صورت متن باز منتشر شده و به زبان برنامهنويسي ++C نوشتهشده است. ضمن اينكه از استاندارد اكما اسكريپت نيز بهره ميبرد. هر جا كه شما دوست داريد تا جاوا اسكريپت را اجرا كنيد، اين موتور ميتواند به شما كمك كند. امروزه يكي از دلايل استفاده زياد از Node.js را همين موتور قدرتمند ميدانند.
در ادامه مقاله ميخواهيم درباره ويژگيهاي Node.js بگوييم كه شامل:
پلتفرم Node.js محدود به هيچ مرورگري نيست ضمن اينكه قابليت اجراشدن در انواع سيستمعاملهاي ويندوز، لينوكس و مك را نيز دارد.جامعه بزرگي از مصرفكنندگان Node.js ميتواند يك عامل مهم در انتخاب اين پلتفرم باشد. شركتهاي بزرگي همچون Yahoo ،Microsoft ،Paypal ،eBay و ... كه از Node.js استفاده ميكنند و ميتواند ملاكي براي اعتبار اين پلتفرم بهحساب آورد. پلتفرم Node.js خودش صاحب يك وب سرور است لذا اگر شما از يك وب سرور استفاده ميكنيد، Node.js از آن استفاده نميكند، چون خودش دارد و براي اينكه برنامه شما را اجرايي كند از طريق خطوط دستوري به نام Command Line استفاده ميكند (Command Line درواقع يك راه تعاملي براي برقراري ارتباط با سرور است و همانطور كه از اسمش هم پيداست، زماني كه ميخواهيم سرور كاري را براي ما انجام دهد ميتوانيم به صورت نوشتن يك سري دستورات مشخص و تعيين شده اين كار را انجام دهيم كه طبعا سرعت بالاتري را هم در آخر نصيب ما خواهد كرد)
در اين مورد ميخواهيم درباره مهمترين ويژگي Node.js صحبت كنيم. عاملي كه باعث شده است تا بسياري از برنامهنويسان امروزه به دنبال استفاده از Node.js باشند. قبل از اينكه بخواهيم درباره اين ويژگي صحبت كنيم، بايد روال عادي در وب سرورهاي سمت سرور را بررسي كنيم تا مزيتي كه Node.js در اختيار ما قرار ميدهد، پررنگتر جلوه كند.
شما در حال تايپ آدرس يك وبسايت هستيد يا وارد صفحهاي در يك وبسايت ميشويد يا هرگونه ارتباطي كه شما بهعنوان كاربر با سرور ايجاد ميكنيد، در زبانهاي برنامهنويسي سمت سرور، باعث ايجاد يك Thread (يك موضوع يا يك بحث جديد) ميكند و اين Thread زماني بسته ميشود كه شما به درخواست خود رسيده باشيد، مثلا صفحهي وبسايتي كه ميخواهيد براي شما بازشده باشد.حالا فرض كنيد كه شما قرار است وارد يك وبسايت پرطرفدار شويد، وبسايتي كه بازديدكنندگان آن بسيار زياد هستند و طبعاً همه اين افراد در بين صفحات اين وبسايت در حال جستجو كردن هستند يا مطالب مختلف را مشاهده ميكنند، در اين حالت است كه Thread هاي بسيار زيادي ايجاد ميشوند. اينجاست كه سرور احتمالاً به سقف ميچسبد و بايستي كه سرورهاي موجود را افزايش دهيم كه خود يك هزينه اضافي است. البته بايد بگوييم كه مشكل اصلي ما در اينجا، حجم بالاي اطلاعات ورودي و خروجي است كه به روشي كه در بالا گفتيم صورت ميگيرد.
Node.js و non blocking I/O
در مثال بالا حالتي را گفتيم كه معمول بود اما حال ميخواهيم برخورد Node.js را در اين مواقع بررسي كنيم. تفاوتي كه Node.js دارد اين است كه از عمليات ورودي-خروجي يا I/O بهصورت رويداد محور استفاده ميكند كه داراي ويژگي non blocking است و مسدود شونده نيست (اصطلاحا به اين روش non blocking I/O ميگويند). درواقع در اين روش، هر اتصالي كه كاربر با سرور ايجاد ميكند بهصورت يك رويداد تعريف ميشود نه يك Thread (تمامي درخواستها و اتصالات بهصورت رويدادها مديريت ميشوند درحاليكه فقط يك Thread شكلگرفته است). در يك جمله اگر بخواهيم اين مورد را خلاصه كنيم اين است كه با ايجاد حالت رويداد محور، ما براي رسيدن به نتيجهاي كه مخاطب به دنبال آن است، ديگر نبايد منتظر عمليات ورودي-خروجي باشيم، اينجا صرفا رويدادها هستند كه دريافت نتيجه را سبب ميشوند.آخرين ويژگي كه درباره آن ميخواهيم صحبت كنيم، ماژولها و امكاناتي است كه Node.js آنها را دارد و كار شما در استفاده از اين پلتفرم راحتتر خواهد كرد.
نتيجهگيريدر اين مقاله درباره يك پلتفرم سريع صحبت كرديم. پلتفرمي كه ميتواند براي وبسايت شما با بازديدكنندگان زياد، بسيار خوب عمل كند. پلتفرمي كه داراي ماژولها و امكانات زيادي است كه شمارا ميتواند كمك كند. Node.js مرتبط با سرعت و كيفيت بيشتر كار خود را انجام ميدهد و اين باعث شده است كه حتي برنامهنويسان غيرحرفهاي هم به سراغ آن بروند و برنامههاي حرفهاي بر اساس آن طراحي كنند. اگر به دنبال يك فضايي هستيد كه كدهاي جاوا اسكريپتي خود را اجرايي كنيد و خيلي سريع به درخواست مخاطب خود جواب دهيد، Node.js ميتواند يك انتخاب خوب براي شما باشد
چهارشنبه ۲۶ آذر ۹۹ | ۱۱:۳۹ ۱ بازديد