Node.js يک محيط يا Platform برنامه‌نويسي تحت سرور است که بر پايه‌ي موتور جاواسکريپت V8 گوگل کروم توسعه پيدا کرده است.
Node.js مي‌تواند براي ايجاد وب‌سرورهاي ساده تا پيشرفته مورد استفاده قرار بگيرد. براي مثال ممکن است براي راه‌اندازي يک وبسايت همه منظوره که محتواهاي متني و چندرسانه‌اي را در اختيار مشتريان قرار مي‌دهد از اين ابزار استفاده شود.
ويژگي قابل توجهي که Node.js را از ساير محيط‌هاي برنامه‌نويسي متمايز مي‌کند رويدادگرا( Event-driven ) بودن آن است. برنامه‌نويسي رويدادگرا به شيوه‌اي از برنامه‌نويسي گفته مي‌شود که اجرا کدهاي برنامه وابسته به رخداد رويدادهاي خاص است. براي مثال در هنگام خواندن محتويات يک فايل، در برنامه‌نويسي سنتي، برنامه در هنگام خوانده شدن محتويات فايل از روي رسانه، متوقف مي‌شود و پيشروي نمي‌کند. در معماري رويدادگرا، برنامه به پيشروي خود ادامه مي‌دهد و هنگامي که محتويات از فايل خوانده شدند، تابع دلخواهي از برنامه توسط Node.js فراخواني مي‌شود.

به نظر مي‌رسد زبان برنامه‌نويسي جاوااسکريپت درآينده، زبان غالب باشد. استقبال چشم‌گير از پلتفرم Node.js از دلايل اصلي اين پيش‌گويي است.

سيستم چند سکويي
Node.js پشتيباني به خوبي از سيستم‌عامل‌هاي گوناگون پشتيباني مي‌کند. يک برنامه‌ي نوشته شده با Node.js بدون توجه به سيستم‌عامل ميزبان در تمام محيط‌ها، به شکلي مشابه عمل مي‌کند.

کارکردهاي جانبي
اگرچه کارکرد اصلي Node.js براي ايجاد ابزارهاي تحت سرور است، با اين حال کتابخانه‌هاي بسياري براي آن توسعه پيدا کرده‌اند که کاربردهاي سمت مشتري زيادي را نيز برايش معرفي نموده‌اند. کتابخانه‌هاي Node.js تقريبا براي تمام نيازهاي توليد يک نرم‌افزار کاربردي يا ابزار کمکي وجود دارند. کتابخانه‌هايي مانند ارتباط با بانک اطلاعاتي، ذخيره و بازيابي اطلاعات، ارتباطات شبکه، کدگذاري و کدگشايي اطلاعات، پردازش‌گرهاي فايل‌هاي تصويري و بسياري ديگر.

نرم‌افزارهاي بر پايه‌ي Node.js
علاوه بر کتابخانه‌هاي فراوان، برنامه‌هاي کاربري زيادي نيز با کمک Node.js ايجاد شده‌اند که اغلب براي آسان‌کردن کار برنامه‌نويسان مورد استفاده قرار مي‌گيرند. براي مثال ابزارهايي که مي‌توانند جايگزين برنامه‌ي سنتي make باشند يا برنامه‌هايي که کار کامپايل زبان‌هاي برنامه‌نويسي جديد به زبان‌هاي متداول را انجام مي‌دهند.

Node Package Manager
Node.js براي مديريت وابستگي‌ها، يک ابزار کمکي به نام npm در اختيار برنامه‌نويسان قرار مي‌دهد. npm کار مديريت نسخه و دانلود و راه‌اندازي وابستگي‌ها را بسيار آسان مي‌کند. براي مثال ممکن است شما برنامه‌اي ايجاد کنيد که براي اجرا به چندين کتابخانه‌ي جانبي نيازمند است. کافي است نام و نگارش مورد نياز از اين کتابخانه‌ها را در فايلي با نام package.json ثبت کنيد و سپس از npm بخواهيد تا فايل‌هاي لازم را از اينترنت دانلود و در کنار فايل‌هاي اصلي پروژه جاسازي کند.

سرعت
سرعت عملکرد Node.js در شروع عمليات اندکي اندکي کم است. ولي در عملکردهايي که زمان بيشتري لازم باشد، سرعت آن خوب و قابل قبول است.

يادگيري Node.js
همان گونه که گفته شد، Node.js بر پايه‌ي زبان جاوااسکريپت فعاليت مي‌کند. بنابراين پيش از شروع به کار با Node.js مي‌بايست اصول برنامه‌نويسي Javascript را فراگيري کنيد. پس از کسب مهارت در جاوااسکريپت، شروع به کار با Node.js بسيار آسان خواهد بود. يادگيري استفاده از ابزارهاي Node.js از جمله npm، کتابخانه‌هاي داخلي( مانند کتابخانه‌ي فايلي ) و کتابخانه‌هاي خارجي مورد نياز در مرحله‌ي بعد قرار دارند.

Node.js چگونه مي‌تواند به من کمک کند؟
برنامه‌نويسان زبان‌هاي مختلف و به طور ويژه برنامه‌نويسان وب مشتريان اصلي اين پلتفرم هستند. کتابخانه‌هاي فراوان و متنوع و ابزارهاي کمکي ايجاد شده براي Node.js به شما کمک مي‌کنند، زمان کمتري را صرف کنيد و نتايج بهتري را کسب کنيد. براي آشنايي با استفاد‌هاي مفيد Node.js، گشت و گذار در سايت Github و پرسش و پاسخ‌هاي Stackoverflow مي‌تواند سرنخ‌هاي جالبي از کاربرهاي اين ابزار در اختيار شما قرار دهد.