在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