Module Patterns
Big Word
Revealing Module Pattern: Exposing only the properties and methods you want via an returned object A very common and clean way to structure and protect code within modules.
The code
//pantter 1
var greet = require('./greet1');
greet();
//pattern 2
var greet2 = require('./greet2').greet;
greet2();
//pattern 3 notice this will be chache
var greet3 = require('./greet3');
greet3.greet();
greet3.greeting = 'Changed hello world!';
var greet3b = require('./greet3');
greet3b.greet();
//patter notice we return an constructor function
var Greet4 = require('./greet4');
var grtr = new Greet4();
grtr.greet();
//patter 5 we return an object
var greet5 = require('./greet5').greet;
greet5();