使用Assets.getText遍历目录

时间:2013-10-14 21:45:50

标签: javascript meteor

在meteor中我可以读到这样的文件:

myjson = JSON.parse(Assets.getText("lib/myfile.json"))

现在我想遍历一个文件夹,并读取所有可用的json文件。如果不安装额外的NPM软件包,最好的方法是什么? 谢谢你的时间。

2 个答案:

答案 0 :(得分:4)

我不确定这是不是最好的方式,但肯定是一个简单的方法:

var fs = Npm.require('fs');

fs.readdir('./assets/app/myFolder', function(e, r) {
    _.each(r, function(filename) {
        Assets.getText('myFolder/' + filename);
    });
});

答案 1 :(得分:2)

我将Hubert OGs代码包装到Meteor.bindEnvironment的函数中。我认为这是必要的,因为在Meteor环境之外没有光纤。 见https://www.eventedmind.com/feed/49CkbYeyKoa7MyH5R

请注意,外部节点包的文档根目录与Meteor不同。

var done, files;

var fs = Npm.require('fs');

files = fs.readdirSync("../../../../../server/collections/lib/", function(e, r) {});

done = Meteor.bindEnvironment(function(files) {
  return _.each(files, function(filename) {
    var myjson;
    myjson = JSON.parse(Assets.getText("lib/" + filename));
    /* do Something */

  });
}, function(e) {
  throw e;
});

done(files);