Criação de módulos com getters e setters no Node

Os módulos ajudam a classificar os aplicativos do Node em partes reutilizáveis.

person.js

// These variables will stay in the local scope of this module (in this case, person.js)
var firstName, lastName, age;

// Make sure your argument name doesn't conflict with variables set above
exports
.setFirstName = function (fname) {
firstName
= fname;
};

exports
.setLastName = function (lname) {
lastName
= lname;
};

exports
.setAge = function (yrsold) {
age
= yrsold;
};

// You're returning an object with property values set above
exports
.getPersonInfo = function () {
return {
firstName
: firstName,
lastName
: lastName,
age
: age
};
};

app.js

var person = require('./person.js');

// Sets first name
person
.setFirstName('Steve');

// Sets last name
person
.setLastName('Jobs');

// Sets age
person
.setAge(56);

// Outputs first name, last name, and age as an object literal
console
.log(person.getPersonInfo());