Node.js 模块

Node.js 中的模块

//math.js
//将方法挂载在exports对象上作为属性即可导出
exports.add = function(){
  var sum = 0,
      i = 0,
      args = arguments,
      l = arguments.length;
  while(i<l){
    sum += args[i++];
  }
  return sum;
}
//app.js
//使用模块中方法
var math = require('math');
var sum = math.add(1,2,3,4,5);

require()方法接收一个标识符作为参数

  • 核心模块 如http, fs, path等
  • ...开始的相对路径
  • /开始的绝对路径
  • 非路径形式的文件模块,如自定义的connect模块
//node.js查找模块的路径
console.log(module.paths);

在Node中,每个文件模块都是一个对象,构造函数如下

function Module(id, parent){
  this.id = id;
  this.exports = {};
  this.parent = parent;
  if(parent && parent.children){
    parent.children.push(this);
  }
  this.filename = null;
  this.loaded = false;
  this.children = [];
}