javascript - 如何从 NodeJS 中的模块返回数组

标签 javascript node.js

我正在编写一个程序,它应该根据文件类型从命令行过滤和打印给定目录的文件。

我的模块.js :

var fs = require('fs');
var result=[];
exports.name = function() {
fs.readdir(process.argv[2], function (err, list) { 

    for(var file in list){

        if(list[file].indexOf('.'+process.argv[3]) !== -1){
            result.push(list[file]);
        }
    }


});
};

在我的实际文件中 索引.js:

var mymodule = require('./mymodule')
console.log(mymodule.name());

当运行命令时

 > node index.js SmashingNodeJS js //In SmashingNodeJS folder print all the .js files

console.log 正在打印未定义的内容,请让我知道我在这里做错了什么以及如何返回/绑定(bind)内容以导出。

最佳答案

我按照上面 Bergi 的评论修复了它。

我的模块.js :

var fs = require('fs');
exports.name = function(print) { // Added print callback here as param
    var result = [];
    fs.readdir(process.argv[2], function (err, list) { 
        for (var file=0; file<list.length; file++) {
             if (list[file].indexOf('.'+process.argv[3]) !== -1) {
                 result.push(list[file]);
            }
        }
        print(result); // Calling back instead of return 
    });
};

在 index.js 文件中:

var mymodule = require('./mymodule')
mymodule.name(console.log); // pass the console.log function as callback

关于javascript - 如何从 NodeJS 中的模块返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29345394/

相关文章:

javascript - Safari 和 Firefox 上的视差/translate3d 性能问题?

javascript - BootStrap 3 上的 Navbar-spy 不允许外部链接

javascript - 如何从日期字符串格式获取日期对象

javascript - google.visualization.Calendar 中的对数色阶?

javascript - 当您将 HTML 源代码复制到记事本中的 .html 文件时,网页会发生什么变化?

node.js - 获取 0 :0 Bad option : 'varstmt' for first line in all files

javascript - Node JS 如何将图像与请求数据一起发布到另一个服务器/api

node.js - Heroku fork - 该附加计划仅适用于特定用户

javascript - 使用 xml2js 解析的问题

node.js - 在 NodeJS 中使用异步响应进行异步调用