正确的模块导出方式
正确的模块导出方式
这个问题已经有了答案:
假设我有下面这个模块makeDir
,它检查目录是否存在,如果不存在,则创建该目录,如果目录已存在,则仅调用它的回调并返回null。
哪种方式是导出该模块的正确方式?
module.exports = makeDir
还是module.exports.makeDir = makeDir
?
'use strict'; var fs = require('fs'); var mkdirp = require('mkdirp'); var makeDir = {}; makeDir.handler = function (dstPath, sizesObj, callback) { var _path = dstPath + sizesObj.name + "/"; fs.lstat(_path, function (err, stats) { if (err) { mkdirp(_path, function (err, made) { if (err) { console.log("Error creating directory: %s", err); callback (err, null); } else { console.log("Created new directory"); callback(null, made); } }); } else { callback(null); } }); }; module.exports = makeDir;
admin 更改状态以发布 2023年5月24日
使用module.exports或module.exports.FUNCTION_NAME的两种方法都可以,但是当您需要这些函数时,它们之间的区别就出现了。
让我用一个示例来展示区别。
a. 直接将函数分配给module.exports
// mkdir.js module.exports = function(){ console.log("make directory function"); }; // app.js var mkdir = require("mkdir.js"); mkdir(); // prints make directory function
b. 将函数导出为module.exports属性
// mkdir.js module.exports.first = function(){ console.log('make directory function'); }; // app.js var mkdir = require('mkdir.js'); mkdir.mkdir(); // make directory function
希望这可以帮助你!