目录在流星我可以读这样的文件:迭代通过与Assets.getText
myjson = JSON.parse(Assets.getText("lib/myfile.json"))
现在我想通过文件夹进行迭代,并阅读所有可用的JSON文件。如果不安装额外的NPM软件包,最好的方法是什么? 谢谢你的时间。
目录在流星我可以读这样的文件:迭代通过与Assets.getText
myjson = JSON.parse(Assets.getText("lib/myfile.json"))
现在我想通过文件夹进行迭代,并阅读所有可用的JSON文件。如果不安装额外的NPM软件包,最好的方法是什么? 谢谢你的时间。
我包休伯特OG了代码与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);
我不知道这是否是最好的办法,但肯定是一个简单的一个:
var fs = Npm.require('fs');
fs.readdir('./assets/app/myFolder', function(e, r) {
_.each(r, function(filename) {
Assets.getText('myFolder/' + filename);
});
});
我该如何将它包裹到流星中。据我了解,我必须包裹来自非流星库的Meteor.bindEnvironment。但我无法得到它的工作。错误消息: 错误:流星代码必须始终在光纤内运行。尝试使用Meteor.bindEnvironment封装您传递给非Meteor库的回调。 – Johannes
将您的代码封装到Meteor.bindEnvironment中。谢谢你的提示! – Johannes