Hello Viewers! বাংলায় বৃহৎ লার্নিং হাবে আপনাকে স্বাগতম। আজকের এই ব্লগে আমরা যারা React নিয়ে কাজ করছি, আমাদের প্রোজেক্টের প্রয়োজন অনুযায়ী লোকাল মেশিনের পাশাপাশি সার্ভারের প্রয়োজন হয়। কিন্তু প্রাথমিক অবস্থায় প্রিমিয়াম ব্যবহার না করে আমরা ফ্রি কিছু সার্ভিস ব্যবহার করতে পারি। তার মধ্যে বর্তমান সময়ে সবচেয়ে জনপ্রিয় সার্ভার হলো Heroku, Vercel ইত্যাদি। কিন্তু Heroku তে প্রজেক্ট ডিপ্লয় করতে গেলে এমন কিছু এরর এর সম্মুখীন হতে যা সাধারণত মাথা ব্যাথার কারণ হয়ে ধারায় । আজকে এমনই একটি এরর নিয়ে আলোচনা করবো তা হলো How to Fix Heroku H10 – App Crashed Error । তাহলে চলুন শুরু করা যাক।
How to Fix Heroku H10 App Crashed Error
নোটঃ যখন আমাদের কোন প্রজেক্ট Heroku তে ডেপ্লয় করতে যাই এবং যদি কোন এরর এর সম্মুখীন হই আমরা তা পড়ে দেখি না, কেননা এখানে অধিকাংশ এরর এর কারণ গুলো বলে দেওয়া হয়। তাই আমি বলবো এরর দেখে ভয় না পেয়ে বা হতাশ না হয়ে একটু পরে দেখলেই আনেকাংশ সমাধান করা সহজ হয়ে যায়।
আমরা হেরোকু এর H10 – App Crashed এর সমাধান টা কয়েকটা ধাপে আলোচনা করবো, এখান থেকে যে কোন একটা প্রয়োগ করে অথবা সবগুলো প্রয়োগের মধ্যমে এই এরর থেকে মুক্তি পাবেন বলে আমি মনে করছি। তারপর ও যদি সমাধান না হয় তাহলে অবশ্যি কমেন্ট এ জানাবেন , আমি সমাধান দেওয়ার চেষ্টা করবো।
প্রথম ধাপঃ আমরা সাধারণত লোকাল মেশিনে নোড প্রজেক্ট 3000 / 5000 পোর্ট এ ব্যবহার করে থাকি, কিন্তু যখন হিরোকু তে প্রজেক্ট ডেপ্লয় করা হয় তখন হেরোকু সাধারণত process.env.PORTথেকে পোর্ট সেট করে নেয়। আর যদি তা প্রজেক্ট এর মধ্যে না থাকে তাহলে এই এরর টা দিয়ে থাকে। এই এরর থেকে বেচে থাকার জন্য প্রোজেক্টে এর মধ্যে এই কোড টা এ্যড করে নিতে পারেন। আর তা হলো
[const port = process.env.PORT || 5000]
তবে যদি আপনি হিরোকু এর সকল Environment variables দেখেত চান তাহলে এই কমান্ড টি আপনার প্রজেক্টের টার্মিনালে রান করে দেখতে পারেন।
[heroku run printenv]
দ্বিতীয় ধাপঃ আমরা যখন নোড প্রজেক্ট এ কাজ করি কিন্তু আমরা package.json ফাইলে নোড scripts এ্যড করতে ভুলে গেলে সাধারণত এমন এরর টা দিয়ে থাকে। আর এই এরর থেকে বেচে থাকার জন্য প্রোজেক্টে এর package.json ফাইলের start scripts এর মধ্যে এই কোড টা এ্যড করে নিতে পারেন। আর তা হলো
[“scripts” : { “start” : “node index.js”}]
নোটঃ অবশ্যই পালনীয় যে আপনি আপনার সার্ভার এর পরজেক্ট এর Entry Point কোন টি ব্যবহার করেছেন app.js / index.js. ওই হিসেবে package.json ফাইল আপডেট করে নিবেন। তবে আমার একান্তই মতামতঃ Entry Point এর ফাইলের নাম সাধারণত index.jsদিলে অনেকাংশই এরর থেকে বাঁচা যায়। বাকিটা আপনার ইচ্ছা অথবা প্রজেক্টের রেকোয়ারমেন্ট আনুযায়ি ব্যবহার করতে পারেন। তবে অবশ্যই সতর্ক থাকা জরুরি।
তৃতীয় ধাপঃ যখন নোড প্রজেক্ট হেরোকু সার্ভারে আপলোড করা হয়, কিন্তু আমরা আমাদের প্রেজক্টের ব্যবহার করা ডট ইএনভি (.env) ফাইলে এনভায়রমেন্ট ভ্যারিয়বল গুলো সার্ভারে সেটাপ করতে ভুলে যাই তার জন্য এই এরর টা সাধারণত দিয়ে থাকে। আর এই এরর থেকে বেঁচে থাকার জন্য আপনি আপনার হিরোকু ডাশবোর্ডে গিয়ে আপনার সার্ভার এর সাইট লিংকে ক্লিক করে নতুন একটা উইন্ডো ওপেন হবে, সেখানে গিয়ে সেটিংস অপশনে ক্লিক করে সামান্য স্ক্রল করলেই Config Vars => Reveal Config Vars এ ক্লিক করবেন, আলাদিনের চেরাগের মতো একটা অপশন বের হবে, ঐখানে আপনি আপনার প্রজেক্টের সকল key & value গুলো এ্যাড করে নিবেন ।
KEY: USER_NAME VALUE: notesaid24
KEY: USER_PASSWORD VALUE: like&share&comment
চতুর্থ ধাপঃ উপরোল্লিখিত তিনটি ধাপের প্রয়োগ করার পরও যদি সমস্যার সমাধান না হয় এবং এরর দেয় তাহলে আপনি আপনার প্রজেক্টের package.json ফাইলে নিচের কোড গুলো দিয়ে রিপ্লেস করে নিবেন। কোড টি হলো।
[{
"name": "notesaid24",
"description": "An Awesome Source Code Sharing Website",
"version": "1.0.4",
"engines": {
"node": "16.17.0"
}
}]
নোটঃ তবে আপনি আপনার নোড ভার্শন চেক করে এ্যাড করে নিবেন। আর যদি সব ঠিকমত করা হয় তাহলে টার্মিনালে গিয়ে এই কমান্ড heroku restart রান করবেন। আশা করি আর কোন সমস্যা হবে না। আর উপরিল্লোখিত লেখায় যদি কোন ভুল দৃষ্টিগোচর হয় তা অবশ্যই কমেন্টে জানাবেন। আর যদি কোন সমস্যা হয় তাহলে অবশ্যই কমেন্ট করে জানিয়ে দিন আশা করি সমাধান দেওয়ার চেষ্টা করবো। আর পোষ্ট ভালো লাগলে শেয়ার করতে ভুলবেন না। সবাই ভালো থাকবেন দেখা হবে অন্য কোন এক দিন নতুন কোন পোষ্টে।