'حوالہ کی ضرورت کی وضاحت نہیں کی گئی ہے' خرابی کو کیسے حل کریں؟

Hwal Ky Drwrt Ky Wdaht N Y Ky Gyy Khraby Kw Kys Hl Kry



Node.js بذات خود کچھ نہیں ہے، اس کا وجود ہر ماڈیول کے فراہم کردہ ماڈیولز اور طریقوں پر منحصر ہے۔ ان ماڈیولز کے ساتھ کام کرنے کے لیے، ڈویلپر کو پہلے اسے انسٹال کرنا ہوگا اور پھر اسے فی الحال کام کرنے والی فائل کے اندر درآمد کرنا ہوگا۔ ماڈیولز درآمد کرنے کے لیے دو طریقے ہیں جو خاص طور پر JavaScript کے ورژن سے منسلک ہیں جسے ڈویلپر اب استعمال کر رہا ہے یا جس پر ایپلیکیشن کا مالک بنانا چاہتا ہے۔ درآمد کرتے وقت ایک سے زیادہ غلطیوں کا سامنا کرنے کا موقع ہوتا ہے اور ایک مقبول اور سب سے عام غلطی ' درکار ہے() طریقہ بیان اور حل کیا جا رہا ہے۔

یہ گائیڈ غلطیوں کو حل کرنے کے طریقہ کار کی وضاحت کرتا ہے 'Reference Error: Required is not defined'۔

'حوالہ کی خرابی: ضرورت کی وضاحت نہیں کی گئی ہے' خرابی کو کیسے حل کریں؟

پروجیکٹ میں بیرونی یا بلٹ ان ماڈیولز درآمد کرنے کے لیے دو طریقے استعمال کیے جاتے ہیں، یہ ' درکار ہے() 'طریقہ یا' درآمد 'کلیدی لفظ. ذکر کیا گیا' حوالہ کی خرابی: ضرورت کی وضاحت نہیں کی گئی ہے۔ 'کا سامنا کرنا پڑتا ہے جب کوئی صارف استعمال کرنے کی کوشش کرتا ہے' درکار ہے() ' اندر کا طریقہ ' ES ماڈیول دائرہ کار زیر بحث خرابی node.js میں کنسول پر اس طرح ظاہر ہوتی ہے جب نیچے بیان کردہ کوڈ پر عمل درآمد ہوتا ہے:









'حل کریں 'حوالہ کی خرابی: ضرورت کی وضاحت نہیں کی گئی ہے' غلطی کے ہونے کی وجوہات اور ان کے متعلقہ حل ذیل کے حصوں میں بیان کیے گئے ہیں۔



وجہ 1: درخواست کی قسم ماڈیول پر سیٹ ہے۔

اگر آپ کی درخواست مذکورہ غلطی کو ظاہر کر رہی ہے، تو سب سے آسان اور دیرینہ حل یہ ہے کہ ' package.json 'فائل. کلید/قدر کے جوڑے کو تلاش کریں جس میں ' چابی 'کا' قسم 'اور تفویض کردہ قدر' ماڈیول ' یہ پوری ایپلیکیشن ماڈیولر کا ماحول بناتا ہے، جو پرانے کے استعمال کو روکتا ہے۔ کامن جے ایس 'ماڈیولز اور طریقے۔ اس کلید/قدر کے جوڑے کی بصری نمائندگی اس طرح ظاہر ہوتی ہے:





'قسم' : 'ماڈیول' ،

حل: 'ٹائپ' کلید کو ہٹا دیں۔

اس کا حل یہ ہے کہ ' قسم 'node.js پروجیکٹ سے کلید اور تفویض کردہ قدر' package.json 'فائل. 'package.json' فائل سے ہٹانا ES6 ماڈیول کے دائرہ کار کا فائدہ اٹھاتا ہے اور 'require() طریقہ کار کو قابل عمل بناتا ہے۔ اب، جب ایک ہی کوڈ کو دوبارہ عمل میں لایا جائے گا تو غلطی کی کوئی صورت نہیں ہوگی۔



وجہ 2: '.mjs میں کام کرنا ' فائل

' .mjs ” ایک ماڈیول جاوا اسکرپٹ سورس کوڈ فائل ہے۔ یہ ماڈیول ماحول کے اندر کوڈ پر مشتمل ہے 'میں نہیں کامن جے ایس جو بہتر انتظام کے لیے کوڈ کو متعدد فائلوں میں تقسیم کرتا ہے۔ ' درکار ہے() 'طریقہ کے تحت ہے' کامن جے ایس ' اس لیے 'ضرورت' کا طریقہ غیر متعینہ ہو جائے گا جب 'کے اندر استعمال کیا جائے گا .mjs فائل کی توسیع اور مذکورہ غلطی کی موجودگی کی طرف جاتا ہے:

حل: فائل ایکسٹینشن کو '.cjs' میں تبدیل کریں۔

بالکل اسی طرح جیسے ماڈیولر جاوا اسکرپٹ سورس کوڈ کی فائل ایکسٹینشن ' .mjs ' دستیاب ہے. کی توسیع ' .cjs 'کے لیے فراہم کیا جاتا ہے' کامن جے ایس 'ماڈیولز اور خصوصیات۔ یہ فائل قبول نہیں کرتی' ماڈیولر 'پیکیجز جیسے' درآمد لیکن ES5 ورژن کے ساتھ اچھا کام کرتا ہے۔ ہمارے معاملے میں، تبدیل کرنے والی فائل کی توسیع سے متعلقہ مسئلہ حل ہو جائے گا ' درکار ہے() طریقہ:

متبادل نقطہ نظر: ES6 بیان 'درآمد/برآمد' استعمال کریں۔

' درکار ہے() 'طریقہ کی وضاحت اور فراہم کی گئی ہے' CommonJs اور ES5 (ECMAScript 5) کے جاوا اسکرپٹ ورژن تک قابل قبول ہے۔ یہ 2009 میں شائع ہوا تھا اور اب متروک ہو چکا ہے کیونکہ بہت سے جدید ترین ماڈیولز اس کی حمایت نہیں کرتے یا ES5 میں ٹھیک سے کام نہیں کرتے۔ بالکل اسی طرح ' درکار ہے() 'طریقہ کو اب زیادہ بہتر اور آسان سے تبدیل کیا جا رہا ہے' درآمد 'بیانات. دونوں اداروں کا کام یکساں ہے لیکن جدید ترین ٹیکنالوجی اور اس کے ذریعہ فراہم کردہ زیادہ آسانی کی وجہ سے 'درآمد' کو اوپری کنارے حاصل ہے۔

پہلے سے طے شدہ یا بیرونی ماڈیولز کے لیے

درج ذیل مظاہرے میں، 'درآمد' بیان کو ڈیفالٹ یا تھرڈ پارٹی ماڈیول درآمد کرنے کے لیے 'ضرورت ()' طریقہ کے متبادل کے طور پر استعمال کیا جا رہا ہے۔

درآمد readlineObj سے 'ریڈ لائن' ;

تسلی. لاگ ( readlineObj ) ;

مذکورہ کوڈ کی تالیف کے بعد، وہی کام جو کرنے کی ضرورت ہے ' درکار ہے() 'طریقہ کار انجام دیا جاتا ہے اور' حوالہ کی خرابی: ضرورت کی وضاحت نہیں کی گئی ہے۔ 'بھی ظاہر نہیں ہوگا:

کسٹم بلٹ ماڈیولز کے لیے

' درآمد بیان کا استعمال ایک ہی یا مختلف ڈائریکٹریوں میں رہنے والی دیگر فائلوں سے کسٹم بلڈ ماڈیولز یا فنکشنز کو 'درآمد' کرنے کے لیے بھی کیا جاتا ہے۔ دوسری فائلوں کے فنکشنز یا متغیرات کو 'کا استعمال کرتے ہوئے ایکسپورٹ کیا جاتا ہے۔ برآمد 'کلیدی لفظ. مثال کے طور پر، نیچے دیے گئے کوڈ کا ٹکڑا دیکھیں جس میں ایک فنکشن اور ایک رینڈم ویری ایبل دوسری فائل سے امپورٹ کیا جائے گا۔

app.js

const برآمد متغیر = 'یہ گائیڈ لینکس ہنٹ کی طرف سے فراہم کی گئی ہے!' ;

const ایکسپورٹ فنکشن = ( ) => {

تسلی. لاگ ( برآمد متغیر ) ;

} ;

برآمد پہلے سے طے شدہ ایکسپورٹ فنکشن ;

برآمد {

برآمد متغیر

} ;

مندرجہ بالا کوڈ بلاک کی وضاحت اس طرح ہے:

  • سب سے پہلے، بے ترتیب متغیر کا نام ' برآمد متغیر 'کی وضاحت کی گئی ہے اور تیر کا فنکشن' ایکسپورٹ فنکشن () ' تخلیق کیا گیا ہے جو کنسول پر تخلیق کردہ 'exportVariable' کو پرنٹ کرتا ہے۔
  • کے کلیدی الفاظ ' ڈیفالٹ برآمد 'اور' برآمد 'برآمد کرنے کے لیے استعمال کیا جاتا ہے' ایکسپورٹ فنکشن () 'اور' برآمد متغیر 'فائل سے اداروں.
  • جب یہ فائل درآمد کی جاتی ہے تو برآمد شدہ فنکشن اور متغیرات وہاں استعمال کرنے کے لیے دستیاب ہو جاتے ہیں۔

index.js

'index.js' ہماری ثانوی فائل ہے جس میں برآمد شدہ فنکشن اور متغیر کو درآمد اور استعمال کیا جائے گا، اس میں درج ذیل کوڈ شامل ہے:

درآمد ایکسپورٹ فنکشن، { برآمد متغیر } سے './app.js' ;

ایکسپورٹ فنکشن ( ) ;

تسلی. لاگ ( برآمد متغیر ) ;

مندرجہ بالا کوڈ میں، ' درآمد 'بیان کو ڈیفالٹ درآمد کرنے کے لئے استعمال کیا جاتا ہے' ایکسپورٹ فنکشن () 'اور متغیر' برآمد متغیر ' سے ' app.js 'فائل.

اس کے بعد، دونوں درآمد شدہ اداروں کو کنسول پر تصدیقی مقاصد کے لیے طلب کیا جاتا ہے اور ڈسپلے کیا جاتا ہے۔

اب، مین پر عمل کریں ' index.js نیچے دی گئی کمانڈ کا استعمال کرتے ہوئے فائل:

نوڈ انڈیکس. js

پیدا شدہ آؤٹ پٹ سے پتہ چلتا ہے کہ درآمد شدہ عناصر بغیر کسی وجہ کے صحیح طریقے سے کام کر رہے ہیں۔ حوالہ کی خرابی: ضرورت کی وضاحت نہیں کی گئی ہے۔ غلطی:

یہ سب کچھ مخصوص غلطی کو حل کرنے کے بارے میں ہے۔

نتیجہ

حل کرنے کے لیے ' حوالہ کی خرابی: ضرورت کی وضاحت نہیں کی گئی ہے۔ 'غلطی، ہٹا دیں' قسم 'کلید جس کی قدر ہوتی ہے' ماڈیول ' سے ' package.json 'یا فی الحال کام کرنے والی فائل ایکسٹینشن کو' میں تبدیل کریں۔ .cjs ' اگر آپ ES6 ماڈیولر ورژن میں کام کرنا چاہتے ہیں تو استعمال کرنے کے بجائے درکار ہے() 'طریقہ استعمال کریں' درآمد 'بیانات کا نقطہ نظر. اس گائیڈ نے حل کرنے کے لیے ممکنہ اصلاحات کی وضاحت کی ہے۔ حوالہ کی خرابی: ضرورت کی وضاحت نہیں کی گئی ہے۔ node.js میں 'غلطی'