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
exports
ataumodule.exports
. Agar modul dapat mengaksesexports
modul 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.