Archive for Node.js

exports 与 module.exports

在node.js中,常能见到exports与module.exports,初学中,对其很迷惑,看例说明,才发现其中不同之处,简单的可以把一个*.js的文件看成一个类,如果才采用exports那么就是输出类的变量或方法,如果采用module.exports来输出,那么只当是把输出的内容当成类。

首先,建立test1.js

exports.name = 'Name is a test one !';
exports.see = function(value) {
  console.log(value); // 输出值
};

建立test2.js

module.exports = 'Name is a test two !'

建立test3.js

module.exports = function(value) {
    this.name = 'This is a test three !'; // 要想输出,那么this一定要加上
    this.see = function() {
        console.log('see ' + this.name + '. value: ' + value + ' \n ok ?');
    };
};

接着建立一个app.js,用于调用以上文件

var test1 = require('./test1');
 
console.log(test1.name);
test1.see('me?');

显示结果为:

localhost:nodejs-demo porrychen$ node app.js
Name is a test one !
me?

var test2 = require('./test2');
 
console.log(test2);

显示结果为:

localhost:nodejs-demo porrychen$ node app.js
Name is a test two !

var test3 = require('./test3');
 
var t = new test3('porry');
console.log(t.name);
t.see();

显示结果为:

localhost:nodejs-demo porrychen$ node app.js
This is a test three !
see This is a test three !. value: porry
ok ?

最后,三种不同的测试例子,基本可以对exports与module.exports有所了解。