在Node.js中,每个javascript 文件默认是一个模块(也可以用文件夹的方式组织模块)
function contains(a, b){ return a.indexOf(b) > -1 } function stringToOrdinal(str){ var result = '' for (var i=0;i<str.length;i++){ result += charToNumber(str[i]) } return result } function charToNumber(char) { return char.charCodeAt(0) - 96 } module.exports = { contains:contains, stringToOrdinal: stringToOrdinal }
完善版本
function init() { function charToNumber(char) { return char.charCodeAt(0) - 96 } function StringManipulation(){ } var stringManipulation = new StringManipulation() stringManipulation.contains = function(a, b){ return a.indexOf(b) > -1 } stringManipulation.stringToOrdinal= function(str){ var result = '' for (var i=0;i<str.length;i++){ result += charToNumber(str[i]) } return result } return stringManipulation } module.exports = init
以上为Node.js一个有效模块,该模块有三个函数,其中两个函数作为公共函数暴露给外部模块使用。
在Node.js 中可以通过 module.exports 变量实现以上功能。只有分配给这个变量的对象,才能对外部模块可见,因此可以在模块中实现私有域,例如本例中的charToNumber()函数一样。
如果想使用这个函数,只需要调用 require()函数, 如下所示:
var stringManipulation = require("./string-manipution"); console.log(stringManipulation .stringToOridinal("aabb"))
输出结果 1122