5

在流星中,我可以读取这样的文件:

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

现在我想遍历一个文件夹,并读取所有可用的 json 文件。在不安装额外 NPM 包的情况下,最好的方法是什么。感谢您的时间。

4

2 回答 2

4

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

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

fs.readdir('./assets/app/myFolder', function(e, r) {
    _.each(r, function(filename) {
        Assets.getText('myFolder/' + filename);
    });
});
于 2013-10-15T03:27:26.470 回答
2

我使用 Meteor.bindEnvironment 将 Hubert OGs 代码包装到一个函数中。我认为这是必要的,因为在 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);
于 2013-11-08T22:26:56.283 回答