var mymodule = require('./filtered2Module.js'); var dir = process.argv[2]; //katalog w ktorym wyszukujemy pliki var ext = process.argv[3]; //koncowka pliku w/g ktorej filtrujemy wyszukiwanie mymodule(dir, ext, function(err, list){ if (err) { throw err; } else { list.forEach(function(el){ console.log(el); } ) } }); console.log(JSON.stringify(mymodule.calc()));
A to moduł:
var fs = require('fs'); var path = require('path'); module.exports = function(dir, ext, callback) { return { calc: function() { var buf = fs.readdir(dir, function (err, data) { if (err) { return callback(err); // early return } // ... no error, continue doing cool things with `data` var list = []; for (var i=0, len=dir.length; i<len; i++) { if (path.extname(dir[i]).substring(1) == ext) { list.push(dir[i]); } } // all went well, call callback with `null` for the error argument callback(null, list); }); } }; }
Jak wywołuję pierwszy plik to dostaję zwrotkę, że mymodule jest obiektem. Posiłkuję się dokumentacją node gdzie jest podobny przykład dla modułu square. Po za tym jak dla mnie to wygląda to tak, że zwracana jest funkcja, która zwraca obiekt i całość jest eksportowana.