Every javascript file in itself is a module
The require function searches for modules, and loads the module definition into the Node runtime
a module that defines a next function
//simple.js
var count = 0;
exports.next = function() { return count++; }
//to use simple.js
var s = require( "./simple.js"); //.js can be omitted
next();
next();
any object/function assigned to exports are visible to the users. objects that not assigned to export are local to file.
./ means current directory
../ means the parent directory
You can include modules by finding modules in the node_modules directory
require( 'express' );
outputing funciton in module
function start() {
console.log("Request handler 'start' was called.");
}
function upload() {
console.log("Request handler 'upload' was called.");
}
exports.start = start;
exports.upload = upload;
Searching for node_modules
node looks for modules in the current directory first and then keep move up to the parent folder until it finds the node_modules folder
require.paths
require.paths return the System-wide modules paths, but it is not necessary to set this env variable
to add a path to require.paths:
$ export NODE_PATH=/usr/lib/node
$ node
> require.paths;
$ node
> require.paths;
but it is recommended to install modules in the node_modules folder.
npm
use npm to install package
-g flag installs package globally
npm -g install packagename