我对Meteor很陌生,所以如果这是一个愚蠢的问题我道歉:
如何从服务器端的文件系统中读取文件,并在客户端显示这些内容。同步地做它不是一个问题,因为我可以马上把它归还,但正如我从阅读中理解的那样,它击败了Meteor的目的,所以我试图异步地做它。但是,我不知道如何以这种方式连接客户端/服务器。发布/订阅似乎只适用于数据库集合而不适用于文件系统文件。我非常感谢您给我的任何指导。
if (Meteor.isClient) {
Template.body.helpers({
myfile: function(){
return file_contents;
}
});
}
if (Meteor.isServer) {
Meteor.methods({
myfile: function(){
var fs = Npm.require("fs");
fs.readFile('/opt/SI/SIAgent/conf/myfile','utf-8', function (err, data) {
file_contents = data;
});
}
});
}
答案 0 :(得分:1)
您必须使用Meteor.wrapAsync
将Node.JS fs.readFile
转换为同步代码,以便您可以在Meteor方法中返回结果。
var fs=Npm.require("fs");
fsReadFileSync=Meteor.wrapAsync(fs.readFile,fs);
Meteor.methods({
getMyFileContent:function(){
return fsReadFileSync("/opt/SI/SIAgent/conf/myfile","utf-8");
}
});