￼সহজ ভাবে চিন্তা করলে, আপনার কাছে যদি কিছু জাভাস্ক্রিপ্ট কোড থাকে আর সাথে V8 ইঞ্জিন থাকে তাহলেই আপনি সেই কোড রান করাতে পারেন কোন সমস্যা এবং অন্য যেকোনো টুলের উপর নির্ভরশীলতা ছাড়াই। কিন্তু দুঃখের বিষয় হচ্ছে এরকম একটা সেটআপ এর মধ্যে থেকে আপনি কোন রকম সিস্টেম কল চালাতে পারতেন না অর্থাৎ ফাইল সিস্টেম অপারেশন, নেটওয়ার্ক কানেকশন এসব করতে পারতেন না। V8 এর কোন ক্ষমতাই নাই এসব কাজ করার। এর কাজ হচ্ছে সোজা সাপটা জাভাস্ক্রিপ্ট কোডকে এক্সিকিউট করা। এখানেই Node.js এর দরকার পরে যায়। V8 কে সাথে নিয়ে, Node.js মূলত তিনটি সাপোর্ট আমাদেরকে দেয় - ১) সিস্টেমের সাথে কাজ করার জন্য কিছু বাইন্ডিং ২) একটি ইভেন্ট লুপ ৩) একটি থ্রেড পুল (ইভেন্ট লুপ এবং থ্রেড পুলের প্রয়োজনীয়তা আমরা সামনেই পড়বো) তার আগে শুধু এটুকু মুখস্ত করে রাখি যে, এই তিনটি জিনিষের কম্বিনেশনের কারনেই আমরা একটি প্ল্যাটফর্ম পাই যার মাধ্যমে asynchronous প্রোগ্রামিং করে নন ব্লকিং ইনপুট/আউটপুট অপারেশন করা সম্ভব হয়। তাহলে ক্ষণিকের জন্য, একটি সিম্পল ডায়াগ্রাম চিন্তা করতে পারি নিচের মত।