在nodejs中,提供了exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。在我们自己写模块的时候,需要在模块最后写好模块接口,声明这个模块对外暴露什么内容,module.exports 提供了暴露接口的方法。

  1. 返回一个JSON Object
//app.js
var app = {
    name: 'app',
    version: '1.0.0',
    sayHello:sayHello(),
    sayName: function(name){
        console.log(this.name);
    }
}
function sayHello(){
    console.log("Hello");
}
module.exports = app;

调用方法:(可传入参数)

var app = require('./app.js');
app.sayName('hello');//hello
app.sayHello();//hello
  1. 返回一个模块函数
//function.js
var func1 = function() {
   console.log("func1");
};
 
var func2 = function() {
   console.log("func2");
};
 
exports.function1 = func1;
exports.function2 = func2;

调用方法:

var functions = require("./function.js");
functions.function1();
functions.function2();
  1. 返回一个构造函数
//CLASS.js
var CLASS = function(args){
     this.args = args;
}
module.exports = CLASS;

调用方法:

var CLASS = require('./CLASS.js');
var c = new CLASS('arguments');
  1. 返回一个实例对象:
//CLASS.js
var CLASS = function(){
    this.name = "class";
}
CLASS .prototype.func = function(){
    alert(this.name);
}
module.exports = new CLASS();

调用方法:

var c = require('./CLASS.js');
c.func();//"class"