node.js - Correct way of exporting module -


this question has answer here:

say have following module makedir checks existence of directory , creates 1 if not exist or calls callback null if directory exists.

which proper way export module?

module.exports = makedir or 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; 

both methods of using module.exports or module.exports.function_name okay difference comes when require these functions.

let me show difference using example.

a. assigning function directly 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. exporting function @ property in 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 

hope helps!


Comments