বিভিন্ন অপারেটিং সিস্টেমে ফাইল পাথ দেখতে ভিন্ন — Windows ব্যাকস্ল্যাশ ব্যবহার করে (C:\Users\name), Mac আর Linux ফরওয়ার্ড স্ল্যাশ ব্যবহার করে (/home/name)। path মডিউল এমনভাবে পাথ তৈরি আর পড়ে যা Node আসলে কোন সিস্টেমে চলছে তা নির্বিশেষে সঠিকভাবে কাজ করে।
+ দিয়ে স্ট্রিং জোড়া দিয়ে কখনো একটি পাথ তৈরি করবেন না — path.join() ব্যবহার করুন:
const path = require('path')
const filePath = path.join('data', 'users', 'list.json')
console.log(filePath) // Mac/Linux-এ 'data/users/list.json', Windows-এ 'data\\users\\list.json'path.join() স্বয়ংক্রিয়ভাবে যে সিস্টেমেই কোডটি চলছে তার জন্য সঠিক সেপারেটর ব্যবহার করে — এভাবে লেখা কোড প্রতিটি অপারেটিং সিস্টেমে একইভাবে আচরণ করে।
const filePath = '/projects/site/photo.png'
path.basename(filePath) // 'photo.png'
path.extname(filePath) // '.png'
path.dirname(filePath) // '/projects/site''data.json'-এর মতো একটি রিলেটিভ পাথ বর্তমান working directory-এর বিপরীতে রিজলভ হয় — স্ক্রিপ্ট শুরু হওয়ার সময় টার্মিনালটি যেখানে ছিল, যা সবসময় স্ক্রিপ্ট ফাইলটি নিজে যেখানে থাকে তা নয়। __dirname সবসময় বর্তমান ফাইল ধারণকারী ফোল্ডারের দিকে নির্দেশ করে, তাই এটিকে path.join()-এর সাথে মেলালে এমন একটি পাথ পাওয়া যায় যা স্ক্রিপ্টটি যেখান থেকেই চালানো হোক না কেন কাজ করে:
const configPath = path.join(__dirname, 'config.json')os Node যে মেশিনে চলছে সে সম্পর্কে তথ্য জানায়:
const os = require('os')
console.log(os.platform()) // 'win32', 'darwin', 'linux'
console.log(os.cpus().length) // CPU কোরের সংখ্যা
console.log(os.freemem()) // ফ্রি মেমরি, বাইটেপ্রতিদিনের অ্যাপ কোডে আপনি খুব একটা os-এর দিকে যাবেন না — এটি বেশিরভাগ কমান্ড-লাইন টুল আর স্ক্রিপ্টে কাজে আসে যেগুলোর কোন মেশিনে চলছে তার উপর ভিত্তি করে ভিন্নভাবে আচরণ করা প্রয়োজন।