process একটি গ্লোবাল অবজেক্ট, কোনো require() ছাড়াই সবসময় উপলব্ধ, যা বর্তমানে চলমান Node প্রোগ্রামটি নিজেকে প্রতিনিধিত্ব করে — এ সম্পর্কে তথ্য, আর এটি নিয়ন্ত্রণ করার উপায়।
process.argv কমান্ড লাইনে টাইপ করা সবকিছুর একটি অ্যারে:
node app.js hello worldconsole.log(process.argv)
// ['/path/to/node', '/path/to/app.js', 'hello', 'world']প্রথম দুটি এন্ট্রি সবসময় Node নিজের পাথ আর স্ক্রিপ্টের পাথ — আসল আর্গুমেন্ট index 2 থেকে শুরু হয়:
const args = process.argv.slice(2)
console.log(args) // ['hello', 'world']process.env একটি অবজেক্ট যা এনভায়রনমেন্ট ভেরিয়েবল ধরে রাখে — এমন মান যা প্রোগ্রামের বাইরে, অপারেটিং সিস্টেম বা যে এটি চালু করে তার দ্বারা সেট করা, সোর্সে হার্ডকোড করা নয়:
console.log(process.env.HOME) // যেমন /home/priya
console.log(process.env.NODE_ENV) // যেমন 'production', অথবা undefinedPORT=4000 node app.jsconst port = process.env.PORT || 3000
console.log(`Using port ${port}`)ডেটাবেস পাসওয়ার্ড, API key, আর একই ধরনের সিক্রেট কখনো সরাসরি একটি সোর্স ফাইলে লেখা উচিত নয় — যে কেউ কোডটি দেখতে পারে (একজন টিমমেট, একটি পাবলিক রিপোজিটরি, একটি AI কোড রিভিউ টুল) সিক্রেটটিও দেখে ফেলে। এনভায়রনমেন্ট ভেরিয়েবল এটি সমাধান করে: সিক্রেটটি কোডের বাইরে থাকে, আর কোড শুধু রানটাইমে process.env-এ যা থাকে তা পড়ে।
const apiKey = process.env.API_KEY
if (!apiKey) {
throw new Error('API_KEY environment variable is required')
}কখনো একটি সিক্রেট হার্ডকোড করবেন না
ভার্সন কন্ট্রোলে কমিট হয়ে যাওয়া একটি হার্ডকোড করা সিক্রেট পুরোপুরি সরানো অত্যন্ত কঠিন — পরে এটি মুছে ফেললেও, ইতিহাস পুনরায় না লিখলে এটি প্রোজেক্টের ইতিহাসে চিরকাল থেকে যায়। শুরু থেকেই process.env থেকে এটি পড়া সমস্যাটি সম্পূর্ণভাবে এড়িয়ে যায়।
process.exit(code) প্রোগ্রামটি সাথে সাথে শেষ করে দেয়। 0 মানে সফল; অন্য যেকোনো সংখ্যা স্ক্রিপ্টটি যা চালু করেছে তাকে একটি error সংকেত দেয়:
if (!apiKey) {
console.error('Missing API_KEY')
process.exit(1)
}