JavaScript/Node.js-এ 'প্রয়োজন সংজ্ঞায়িত নয়' ত্রুটি কীভাবে সমাধান করবেন

Javascript Node Js E Prayojana Sanjnayita Naya Truti Kibhabe Samadhana Karabena



প্রোগ্রামিং যাত্রার সময়, আমরা সিনট্যাক্স ত্রুটি বা রানটাইম ত্রুটির মতো বিভিন্ন ত্রুটির সম্মুখীন হতে পারি। একটি রেফারেন্স ত্রুটি একটি রানটাইম ত্রুটি. একটি রেফারেন্স ত্রুটি ঘটে যখন একটি নন-ইনিশিয়ালাইজড ভেরিয়েবল বা একটি ভেরিয়েবল যা বর্তমান সুযোগে বিদ্যমান নেই তা উল্লেখ করা হয়েছে। 'require is not defined' ত্রুটিটি একটি রেফারেন্স ত্রুটি যা নির্দেশ করে যে 'require' কীওয়ার্ডের সাথে একটি সমস্যা আছে।

এই নিবন্ধটি বিশদভাবে আলোচনা করে যে এই ত্রুটিটি ঘটে এবং আমরা কীভাবে এটি ঠিক করতে পারি।

JavaScript/Node.js-এ 'require is not defined' ত্রুটিটি কিভাবে সমাধান করবেন?

রেফারেন্স ত্রুটি 'require is not found' ঘটবে যখন JavaScript ফাইলে need() ফাংশনটি পাওয়া যায় যা Node.js পরিবেশের পরিবর্তে ওয়েব ব্রাউজারে কার্যকর করার কথা ছিল।







একটি প্রয়োজন() ফাংশন কি?

need() ফাংশনের একটি বিশ্বব্যাপী সুযোগ রয়েছে এবং এটি Node.js দ্বারা প্রদত্ত। এটি Node.js অ্যাপ্লিকেশনে মডিউল লোড করে এবং চালায়। অনেক ব্রাউজার Node.js কে সাহায্য করে না তাই প্রয়োজন() কার্যকারিতা তাদের মধ্যে পাওয়া যায় না।



কখন এই ত্রুটি ঘটবে?

Node.js সহ উভয় ব্রাউজারেই জাভাস্ক্রিপ্ট ব্যবহার করা হলে সাধারণত এই ত্রুটি ঘটে। ত্রুটি তিনটি উপায়ে ঘটতে পারে:



  • যখন প্রয়োজন() ফাংশন ব্রাউজার পরিবেশে ব্যবহার করা হয়।
  • Node.js এবং package.json ফাইলে যখন require() ফাংশন ব্যবহার করা হয়, তখন টাইপটি 'মডিউল' এ সেট করা হয়।
  • Node.js-এ যখন require() ফাংশন ব্যবহার করা হয় তখন ফাইলগুলির .mjs-এর এক্সটেনশন থাকে।

সিনট্যাক্স কনস্ট ব্যবহার করে ' myFile = প্রয়োজন ('./my-file') 'একটি ওয়েব-ভিত্তিক পরিবেশে একটি ত্রুটি নিক্ষেপ করবে যা এইরকম দেখাচ্ছে:





আসুন এই ত্রুটিটি সমাধানের জন্য বিভিন্ন সমাধান নিয়ে আলোচনা করি।



কেস 1: ব্রাউজার পরিবেশে ত্রুটি

প্রয়োজন() ফাংশন বিশেষভাবে Node.js-এ কাজ করে। বেশিরভাগ ব্রাউজার Node.js এর সাথে সামঞ্জস্যপূর্ণ তাই তারা need() কার্যকারিতা সমর্থন করে না। ES6 মডিউল আমদানি রপ্তানি মডিউল 'রেফারেন্স ত্রুটি প্রয়োজন সংজ্ঞায়িত নয়' ত্রুটির সমাধান করে৷ এখানে একটি কোডের একটি উদাহরণ যা দেখায় যে এটি কীভাবে করা যেতে পারে:

DOCTYPE html >

< শরীর >





< স্ক্রিপ্ট প্রকার = 'মডিউল' src = 'index.js' >> লিপি >

< স্ক্রিপ্ট প্রকার = 'মডিউল' src = 'file.js' >> লিপি >

শরীর >

html >

Index.js প্রথমে লোড করা হয় যাতে এর কার্যকারিতা ফাইল.js-এ ব্যবহার করা যায়।

index.js ফাইল

index.js একটি ফাংশন পণ্য এবং ভেরিয়েবল x এবং y সংজ্ঞায়িত করে:

রপ্তানি ফাংশন পণ্য ( ক, খ ) {

ফিরে * ;

}

রপ্তানি const = 10 ;

রপ্তানি const এবং = 'টেলর'

file.js

index.js ফাইলের কার্যকারিতা ফাইল.js নামে অন্য js ফাইলে ব্যবহার করা যেতে পারে। File.js এর মত দেখাচ্ছে:

আমদানি { পণ্য, x, y } থেকে './index.js' ;

কনসোল লগ ( পণ্য ( 10 , 5 ) ) ; // 50 প্রদর্শন করবে

কনসোল লগ ( এক্স ) ; // 10 প্রদর্শন করবে

কনসোল লগ ( এবং ) ; // 'টেলর' প্রদর্শন করবে

আউটপুট

নিম্নলিখিত আউটপুটটি দেখায় যে কীভাবে একটি ব্রাউজার পরিবেশে ত্রুটি 'প্রয়োজন সংজ্ঞায়িত নয়' ES6 আমদানি রপ্তানি মডিউল ব্যবহার করে সরানো যেতে পারে:

কেস 2: Node.js এ কাজ করার সময় ত্রুটি

package.json ফাইলে, ভ্যালু মডিউল দিয়ে টাইপ প্রপার্টি সেট করলে এই ত্রুটি পাওয়া যায়। এটা ঘটতে পারে যদি প্রয়োজন() ফাংশনটি একটি এক্সটেনশন .mjs সহ ফাইলে ব্যবহার করা হয়।

এই ত্রুটিটি মুছে ফেলা যেতে পারে যখন আপনি মডিউলে সেট করা টাইপ প্রপার্টি সরিয়ে দেন এবং .mjs এক্সটেনশন সহ যেকোন ফাইলের নাম পরিবর্তন করে .js করা হয়।

//package.json

{

// প্রয়োজন() ব্যবহার করার জন্য মডিউলে সেট করা টাইপ সম্পত্তি সরান

'প্রকার' : 'মডিউল' ,

}

index.js ফাইল

index.js ফাইল একটি ফাংশন সংজ্ঞায়িত করে 'পণ্য' এবং ভেরিয়েবল স্কোপ সহ x এবং y ভেরিয়েবল। এখানে index.js ফাইলটি দেখতে কেমন হবে:

ফাংশন পণ্য ( ক, খ ) {

ফিরে * ;

}

বিশ্বব্যাপী এক্স = 13 ;

বিশ্বব্যাপী এবং = 'দ্রুত' ;

মডিউল রপ্তানি = {

পণ্য,

} ;

file.js

এটা প্রয়োজন() কীওয়ার্ড ব্যবহার করে JS ফাইল index.js থেকে ফাংশন পণ্য নেয়। file.js ফাইলটি দেখতে এরকম হবে:

const { পণ্য } = প্রয়োজন ( './index.js' ) ;

কনসোল লগ ( পণ্য ( 10 , 9 ) ) ; // 90 প্রদর্শন করবে

কনসোল লগ ( এক্স ) ; // 13 প্রদর্শন করবে

কনসোল লগ ( এবং ) ; // 'সুইফ্ট' প্রদর্শন করবে

আউটপুট

আউটপুট দেখায় কিভাবে প্যাকেজ.json ফাইল থেকে মডিউলে সেট করা টাইপের প্রপার্টি সরিয়ে দিয়ে 'Require is not found' ত্রুটিটি সমাধান করা যায়:

মনে রাখার মতো ঘটনা

  • একটি মডিউল আমদানি করতে ES6 মডিউল সিনট্যাক্সের জন্য মডিউল ফাইলের এক্সটেনশন সম্পর্কে নির্দিষ্ট হওয়া প্রয়োজন। জাভাস্ক্রিপ্টের সঠিক প্রক্রিয়াকরণের জন্য ফাইলের ধরন জানা উচিত।
  • ES6 মডিউল একই সাথে need() ফাংশনের সাথে ব্যবহার করা যাবে না।

উপসংহার

ব্রাউজারে ES6 মডিউল সিনট্যাক্স ব্যবহার করলে সমস্যাটির সমাধান হয় 'প্রয়োজন সংজ্ঞায়িত নয়' অথবা অন্যথায় কোড স্নিপেটটি Node.js-এ চালাতে হবে। একটি ব্রাউজারে প্রয়োজন() ফাংশন ব্যবহার করা হলে ত্রুটি ঘটে। এই নিবন্ধটি আলোচনা করেছে যে কীভাবে 'প্রয়োজন সংজ্ঞায়িত করা হয় না' সমস্যাটি একটি উদাহরণ দিয়ে সমাধান করা যেতে পারে।