这个问题已经得到了回答,但我想补充一些澄清...
您可以同时使用 和 将代码导入到应用程序中,如下所示:exports
module.exports
var mycode = require('./path/to/mycode');
您将看到的基本用例(例如在ExpressJS示例代码中)是您在.js文件中设置对象的属性,然后使用该文件导入exports
require()
因此,在一个简单的计数示例中,您可以:
(计数器.js):
var count = 1;
exports.increment = function() {
count++;
};
exports.getCount = function() {
return count;
};
...然后在您的应用程序(web.js或任何其他.js文件中):
var counting = require('./counter.js');
console.log(counting.getCount()); // 1
counting.increment();
console.log(counting.getCount()); // 2
简单来说,您可以将所需的文件视为返回单个对象的函数,并且可以通过将属性(字符串,数字,数组,函数等)添加到返回的对象中,方法是将它们设置为 。exports
有时,您希望从调用返回的对象是可以调用的函数,而不仅仅是具有属性的对象。在这种情况下,您还需要设置 ,如下所示:require()
module.exports
(sayhello.js):
module.exports = exports = function() {
console.log("Hello World!");
};
(应用程序.js):
var sayHello = require('./sayhello.js');
sayHello(); // "Hello World!"
导出和 module.export 之间的区别在这里得到了更好的解释。