在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有所了解。