Jadi apa "persyaratan" ini?
require() bukan bagian dari API JavaScript standar. Namun di Node.js, ini adalah fungsi bawaan dengan tujuan khusus:memuat modul.
Modul adalah cara untuk membagi aplikasi menjadi file terpisah alih-alih memiliki semua aplikasi Anda dalam satu file. Konsep ini juga hadir dalam bahasa lain dengan perbedaan kecil dalam sintaks dan perilaku, seperti include C , import Python Python , dan seterusnya.
Satu perbedaan besar antara modul Node.js dan JavaScript browser adalah bagaimana kode satu skrip diakses dari kode skrip lain.
-
Dalam JavaScript browser, skrip ditambahkan melalui
<script>elemen. Ketika dijalankan, mereka semua memiliki akses langsung ke lingkup global, "ruang bersama" di antara semua skrip. Skrip apa pun dapat dengan bebas mendefinisikan/memodifikasi/menghapus/memanggil apa pun di lingkup global. -
Di Node.js, setiap modul memiliki ruang lingkupnya sendiri. Sebuah modul tidak dapat secara langsung mengakses hal-hal yang didefinisikan dalam modul lain kecuali ia memilih untuk mengeksposnya. Untuk mengekspos sesuatu dari modul, mereka harus ditetapkan ke
exportsataumodule.exports. Agar modul dapat mengaksesexportsmodul lain ataumodule.exports, harus menggunakanrequire().
Dalam kode Anda, var pg = require('pg'); memuat pg modul, klien PostgreSQL untuk Node.js. Ini memungkinkan kode Anda mengakses fungsionalitas API klien PostgreSQL melalui pg variabel.
Mengapa ini bekerja di simpul tetapi tidak di halaman web?
require() , module.exports dan exports adalah API dari sistem modul yang khusus untuk Node.js. Browser tidak mengimplementasikan sistem modul ini.
Juga, sebelum saya membuatnya bekerja di node, saya harus melakukan
npm install pg. Tentang apa itu?
NPM adalah layanan repositori paket yang menghosting modul JavaScript yang diterbitkan. npm install adalah perintah yang memungkinkan Anda mengunduh paket dari repositorinya.
Di mana ia meletakkannya, dan bagaimana Javascript menemukannya?
npm cli menempatkan semua modul yang diunduh ke dalam node_modules direktori tempat Anda menjalankan npm install . Node.js memiliki dokumentasi yang sangat rinci tentang bagaimana modul menemukan modul lain yang mencakup menemukan node_modules direktori.