创建模块
目录结构:
currency.js
/**
* Created by Jun on 2017/3/4.
*/
//这个是一个定义的NODE模块
var canadianDollar = 0.91; //加拿大对美元的汇率
function roundTwoDecimals(amount) { //保留两位小数
return Math.round(amount *100)/100;
}
exports.canadianToUS = function (canadian) { //加币对美元
return roundTwoDecimals(canadian*canadianDollar);
}
exports.USToCanadian = function (us) { //美元对加币
return roundTwoDecimals(us/canadianDollar);
}
/*
* 在这个模块被引用时,只对外输出exports.canadianToUS和exports.USToCanadian两个属性,不能访问canadianDollar这些私有属性
* */
text-currency.js
/**
* Created by Jun on 2017/3/4.
*/
//引入一个currency模块
var currency = require('./currency'); // ' ./ '表明模块与脚本文件在同一目录下
console.log('50 Canadian dollars equals this amount of US dollars: '+ currency.canadianToUS(50)); //使用了currency模块的canadianToUS函数
console.log('30 US dollars equals this amount of Canadian dollars: '+ currency.USToCanadian(30)); //使用了currency模块的USToCanadian函数
console.log(currency.canadianDollar); //undefined
console.log(currency.roundTwoDecimals(100)); //currency.roundTwoDecimals is not a function
/*
* 由上可以看出require函数只返回这个模块中定义的exports对象中的内容,canadianDollar与roundTwoDecimals仍是模块私有的
* */