So what is this “require?”
Modules are a way to split an application into separate files instead of having all of your application in one file. This concept is also present in other languages with minor differences in syntax and behavior, like C’s
import, and so on.
<script>element. When they execute, they all have direct access to the global scope, a “shared space” among all scripts. Any script can freely define/modify/remove/call anything on the global scope.
- In Node.js, each module has its own scope. A module cannot directly access things defined in another module unless it chooses to expose them. To expose things from a module, they must be assigned to
module.exports. For a module to access another module’s
module.exports, it must use
In your code,
var pg = require('pg'); loads the
pg module, a PostgreSQL client for Node.js. This allows your code to access functionality of the PostgreSQL client’s APIs via the
Why does it work in node but not in a webpage?
exports are APIs of a module system that is specific to Node.js. Browsers do not implement this module system.
Also, before I got it to work in node, I had to do
npm install pg. What’s that about?
npm install is a command that lets you download packages from their repository.
The npm cli puts all the downloaded modules in a
node_modules directory where you ran
npm install. Node.js has very detailed documentation on how modules find other modules which includes finding a