Meteorjs将变量从服务器发送到客户端

时间:2015-09-07 23:32:24

标签: javascript meteor

所以我正在尝试从服务器向客户端发送一些数据。这是我调用方法的客户端代码:

 '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中的客户端?

1 个答案:

答案 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')
});