Paano Lutasin ang Error na “require is not defined” sa JavaScript/Node.js

Paano Lutasin Ang Error Na Require Is Not Defined Sa Javascript Node Js



Sa panahon ng paglalakbay sa programming, maaari kaming makatagpo ng iba't ibang mga error tulad ng mga error sa syntax o mga error sa runtime. Ang reference na error ay isang runtime error. Ang isang reference na error ay nangyayari kapag ang isang hindi nasimulang variable o isang variable na hindi umiiral sa kasalukuyang saklaw ay na-reference. Ang error na 'require is not defined' ay isang reference error na nagpapahiwatig na may problema sa keyword na 'require'.

Detalyadong tinatalakay ng artikulong ito ang mga dahilan kung bakit nangyayari ang error na ito at ang mga paraan kung paano natin ito maaayos.

Paano Lutasin ang Error na “require is not defined” sa JavaScript/Node.js?

Ang reference na error na 'require is not found' ay nangyayari kapag ang require() na function ay natagpuan sa JavaScript file na dapat ay isasagawa sa web browser sa halip na sa Node.js environment.







Ano ang isang require() Function?

require() function ay may pandaigdigang saklaw at ibinibigay ng Node.js. Naglo-load at nagpapatakbo ito ng mga module sa application na Node.js. Maraming browser ang hindi nakakatulong sa Node.js kaya hindi available sa kanila ang require() functionality.



Kailan Nangyayari ang Error na Ito?

Karaniwang nangyayari ang error na ito kapag ginagamit ang JavaScript sa parehong mga browser kasama ang Node.js. Maaaring mangyari ang error sa tatlong paraan:



  • Kapag ang require() function ay ginagamit sa kapaligiran ng browser.
  • Kapag ang require() function ay ginamit sa Node.js at ang package.json file, ang uri ay nakatakda sa “module”
  • Kapag ang require() function ay ginamit sa Node.js ang mga file ay may extension na .mjs.

Gamit ang syntax const ' myFile = nangangailangan(‘./my-file’) ” sa isang web-based na kapaligiran ay maglalagay ng error na ganito:





Talakayin natin ang iba't ibang solusyon upang malutas ang error na ito.



Kaso 1: Error sa Kapaligiran ng Browser

Ang require() function ay partikular na gumagana sa Node.js. Karamihan sa mga browser ay tugma sa Node.js kaya hindi nila sinusuportahan ang require() functionality. Niresolba ng ES6 module import export module ang error na 'ReferenceError require is not defined.' Narito ang isang halimbawa ng isang code na nagpapakita kung paano ito magagawa:

DOCTYPE html >

< katawan >





< uri ng script = 'module' src = 'index.js' > iskrip >

< uri ng script = 'module' src = 'file.js' > iskrip >

katawan >

html >

Na-load muna ang Index.js para magamit ang mga functionality nito sa file.js.

index.js file

Ang index.js ay tumutukoy sa isang function na produkto at mga variable na x at y:

export function na produkto ( a, b ) {

bumalik a * b ;

}

i-export const = 10 ;

i-export const at = 'TAYLOR'

file.js

Ang mga functionality mula sa index.js file ay maaaring gamitin sa iba pang js file na pinangalanang file.js. Ang hitsura ng File.js ay:

angkat { produkto, x, y } mula sa './index.js' ;

console. log ( produkto ( 10 , 5 ) ) ; // ay magpapakita ng 50

console. log ( x ) ; // ay magpapakita ng 10

console. log ( at ) ; // ay magpapakita ng 'TAYLOR'

Output

Ipinapakita ng sumusunod na output kung paano maaaring alisin ang error na “require is not defined” sa isang browser environment sa pamamagitan ng paggamit ng ES6 import export module:

Kaso 2: Error Habang Nagtatrabaho sa Node.js

Sa package.json file, ang pagtatakda ng uri ng property na may value na module ay nakakakuha ng error na ito. Maaari rin itong mangyari kung ang require() na function ay ginagamit sa file na may extension na .mjs.

Maaaring alisin ang error na ito kapag inalis mo ang uri ng property na nakatakda sa module at ang anumang file na may extension na .mjs ay pinalitan ng pangalan na .js.

//package.json

{

// alisin ang uri ng property na nakatakda sa module na gagamitin require()

'uri' : 'module' ,

}

index.js file

Ang index.js file ay tumutukoy sa isang function na 'produkto' at mga variable na x at y na may variable na saklaw. Narito ang magiging hitsura ng index.js file:

function na produkto ( a, b ) {

bumalik a * b ;

}

global. x = 13 ;

global. at = 'mabilis' ;

modyul. pag-export = {

produkto,

} ;

file.js

Kinukuha nito ang produkto ng function mula sa JS file index.js sa pamamagitan ng paggamit ng require() na keyword. Ang file.js file ay magiging ganito:

const { produkto } = nangangailangan ( './index.js' ) ;

console. log ( produkto ( 10 , 9 ) ) ; // ay magpapakita ng 90

console. log ( x ) ; // ay magpapakita ng 13

console. log ( at ) ; // ay magpapakita ng 'swift'

Output

Ipinapakita ng output kung paano malulutas ang error na 'Hindi nahanap ang hinihiling' sa pamamagitan ng pag-alis ng property ng uri na nakatakda sa module mula sa package.json file:

Bagay na dapat alalahanin

  • Ang ES6 module syntax upang mag-import ng isang module ay nangangailangan ng pagiging tiyak tungkol sa extension ng module file. Dapat alam ng JavaScript ang uri ng file para sa wastong pagproseso nito.
  • Ang ES6 module ay hindi maaaring sabay na gamitin sa require() function.

Konklusyon

Ang paggamit ng ES6 module syntax sa browser ay nireresolba ang isyung “require is not defined” o kung hindi, ang code snippet ay dapat na tumakbo sa Node.js. Ang error ay nangyayari kapag ang require() function ay ginagamit sa isang browser. Tinalakay ng artikulong ito kung paano malulutas ang isyu na 'hindi tinukoy ang hinihiling' gamit ang isang halimbawa.