NodeJs چیست

نوشته شده توسط:

NodeJS یک چارچوب نرم افزاری برای پیاده سازی نرم افزارهای تعاملی پرکار با سربار زیاد برای سرور می‌باشد که بسیار قدرتمند عمل کرده و بازدهی بسیار خوبی داشته است.

قبل‌ها JavaScript تنها برای اجرای کد در سمت کاربر استفاده می‌شد. اجرای کد در سمت کاربر بیشتر برای جنبه‌های نمایشی و یا Ajax کاربرد داشت، ولی با روی کار آمدن NodeJs می‌توان با JavaScritp مانند PHP و Ruby برنامه‌های سمت سرور قدرتمند ساخت.

NodeJS بدلیل قابلیت‌های منحصر به فردش توانسته است نظر برنامه نویسان زیادی را به خود جلب کند بنابراین بی نهایت Package و افزونه و آموزش برای آن وجود دارد.

جامعه کاربری NodeJS بسیار وفادار و پیشرو است بنابراین آینده بسیار روشنی برای این چارچوب نرم افزاری تصور می‌شود.

چرا باید از NodeJS استفاده کرد؟

زبان‌های برنامه نویسی PHP و Ruby و Java واقعا عالی هستند ولی با تعداد کانکشن بالا مشکل دارند، مثلا اگر یک سرور با 10 گیگ رم داشته باشیم حداکثر در این سرور می‌توان 4 هزار کانکشن ایجاد کرد و برای افزایش امکان پذیرش کاربران باید سرورهای بیشتری اجاره کرد و این یعنی هزینه‌های سرسام آور.

NodeJS بدلیل ماهیت خاصی که دارد پاسخگوی تعداد زیادی در خواست است به نحوی که در سرور فوق الذکر می‌تواند تعداد بسیار زیادی Connection ایجاد کرده و به همه آن‌ها پاسخگو باشد.

NodeJS برای پاسخگویی به حجم بالای کاربران از روش non-blocking I/O بهره می‌برد. روش non-blocking I/O نوعی از نوع عملکردهاست که برنامه منتظر پاسخگویی نمی‌ماند و برنامه شما در حین پردازش دچار وقفه نمی‌شود.

پیاده سازی وبسرور ساده با NodeJS

برای نمایش سادگی و قدرت NodeJS در پایین یک وبسرور TCP با پورت 6000 ایجاد می‌کنیم که پیام‌های دریافتی را در خروجی نمایش می‌دهد.

var net = require('net');
var server = net.createServer(function (stream) {
    stream.write('Hi\r\n');
    stream.on('data', function (data) {
        stream.write(data);
    });
    stream.on('end', function () {
        stream.end('Bye\r\n');
    });
});
server.listen(6000, 'localhost');

همانطور که در بالا می‌بینید یک وب سرور با چند خط کد به سادگی پیاده سازی شد.

در چه موقعیت‌هایی از NodeJS بهره ببریم؟

به پیشنهاد خود NodeJS در برنامه‌های متکی بر ورودی و خروجی و نرم افزارهای RealTime استفاده از NodeJS بهترین بازدهی را دارد.

NodeJS در اجرای فرامین خود پس از فرا خواندن یک API منتظر پاسخ نمی‌ماند و سراغ API بعدی می‌رود این امر باعث می‌شود در نرم افزارهای تعاملی بهترین بازدهی را داشته باشد.

مزایای NodeJS

معایب NodeJS

منابع: wikipedia فارسی wikipedia سایت NodeJS
تگ ها: windows / ویندوز mac / مک linux / لینوکس IOS / آی او اس متن باز / open source
نظر خود را برای این مطلب وارد کنید
دریافت خبرنامه

موضوعات بخش برنامه نویسی و نرم افزار

مطالب برگزیده مطالب عمومی برنامه نویسی

مطالب برگزیده سایت