所以我正在尝试从服务器向客户端发送一些数据。这是我调用方法的客户端代码:
'change #yes' : function (event){
Meteor.call("readHeaders", Meteor.user().emails[0].address+'/'+Session.get("file1"),
function(err, result){
console.log(result);
});
},
这是被调用的方法:
readHeaders: function(fileName){
Future = Npm.require('fibers/future');
var myFuture = new Future();
var nodeFS = Meteor.npmRequire('node-fs');
nodeFS.readFile("/Users/ray/Desktop/juju/upload/"+fileName,'utf8', function read(err, data){
if (err) {
throw err;
}
var headers = data.slice(0,data.indexOf('\n')).split(",");
myFuture.return(headers);
});
myFuture.wait();
}
});
var somefunction = function(fileName, cb){
var nodeFS = Meteor.npmRequire('node-fs');
nodeFS.readFile("/"+fileName,'utf8', function read(err, data){
if (err) {
throw err;
}
var headers = data.slice(0,data.indexOf('\n')).split(",");
console.log(headers);
return headers;
});
}
这里我使用光纤,但我也试过使用wrapAsync,但无济于事。有谁知道如何将变量从服务器传递到Meteor中的客户端?
答案 0 :(得分:0)
如果您愿意,可以使用普通的休息API。
WebApp.connectHandlers.use('/file', function (req, res, next) {
var filename = req.body.filename;
res.write(fs.readFileSync(path.join(__dirname + '/' + filename));
res.end();
});
然后在客户端上像
HTTP.get('/file', { filename: 'file1.txt' }, function () {
console.log('finished')
});