Dus wat is deze "vereiste?"
require()
maakt geen deel uit van de standaard JavaScript-API. Maar in Node.js is het een ingebouwde functie met een speciaal doel:om modules te laden.
Modules zijn een manier om een applicatie op te splitsen in afzonderlijke bestanden in plaats van al uw applicaties in één bestand te hebben. Dit concept is ook aanwezig in andere talen met kleine verschillen in syntaxis en gedrag, zoals C's include
, Python's import
, enzovoort.
Een groot verschil tussen Node.js-modules en browser-JavaScript is hoe de code van het ene script wordt benaderd vanuit de code van een ander script.
-
In browser JavaScript worden scripts toegevoegd via de
<script>
element. Wanneer ze worden uitgevoerd, hebben ze allemaal directe toegang tot het globale bereik, een "gedeelde ruimte" tussen alle scripts. Elk script kan vrijelijk alles definiëren/wijzigen/verwijderen/aanroepen op de globale scope. -
In Node.js heeft elke module zijn eigen bereik. Een module heeft geen directe toegang tot dingen die in een andere module zijn gedefinieerd, tenzij hij ervoor kiest om ze bloot te leggen. Om dingen uit een module zichtbaar te maken, moeten ze worden toegewezen aan
exports
ofmodule.exports
. Om een module toegang te geven tot deexports
van een andere module ofmodule.exports
, het moetrequire()
gebruiken .
In uw code, var pg = require('pg');
laadt de pg
module, een PostgreSQL-client voor Node.js. Hierdoor heeft uw code toegang tot de functionaliteit van de API's van de PostgreSQL-client via de pg
variabel.
Waarom werkt het in node maar niet in een webpagina?
require()
, module.exports
en exports
zijn API's van een modulesysteem dat specifiek is voor Node.js. Browsers implementeren dit modulesysteem niet.
Voordat ik het in node aan het werk kreeg, moest ik ook npm install pg
. doen . Waar gaat dat over?
NPM is een pakketrepositoryservice die als host fungeert voor gepubliceerde JavaScript-modules. npm install
is een commando waarmee je pakketten uit hun repository kunt downloaden.
Waar heeft het het geplaatst en hoe vindt Javascript het?
De npm cli plaatst alle gedownloade modules in een node_modules
map waarin u npm install
hebt uitgevoerd . Node.js heeft zeer gedetailleerde documentatie over hoe modules andere modules vinden, waaronder het vinden van een node_modules
directory.