2016-02-10 3 views
1

Hei,Метеор как получить переменную ценность от сервера к клиенту?

Im застрял по какой-то причине. Я играю с панелью Arduino, и я хочу прочитать данные в клиенте.

Мой код сервера заключается в следующем:

if(Meteor.isServer) { 

    var five = Meteor.npmRequire("johnny-five"); 
    var board = new five.Board(); 

    Meteor.startup(function() { 
     board.on("ready", Meteor.bindEnvironment(function() { 
     var temperature = new five.Thermometer({ 
      controller: 'TMP36', 
      pin: 'A0' 
     }); 

     Meteor.setInterval(function() { 
      console.log(temperature.celsius); 
     }, 5000); 
    })) 
    }) 

} 

Я не хочу, чтобы сохранить данные в коллекции, но читать его в Интернете. Как передать переменную temperature.celsius от сервера к клиенту? Я не могу запустить код в клиенте, так как я использую NPM, и он работает только на сервере.

ответ

3

Сразу после определения Meteor.setInterval, добавьте это:

Meteor.methods({ 
    temperature: function() { 
    return temperature; 
    }, 
}); 

Затем добавьте в нижней части кода:

if (Meteor.isClient) { 
    Template.tempReport.result = function() { 
    return Session.get('temperature') || ""; 
    }; 
    Template.tempReport.events = { 
    'click button' : function() { 
     Meteor.call('temperature',function(err, response) { 
      Session.set('temperature', response); 
     }); 
    } 
    }; 
} 

И, наконец, в вашем HTML:

<template name="tempReport"> 
    <div>Temperature: {{temperature}} <button>Update</button></div> 
</Template> 
+0

Его почти правильно, я тоже пробовал это. Но по какой-то причине я всегда получаю undefined, а затем вызываю методы на клиенте: Meteor.call ('temperature') undefined – Villemh

+0

Это не «по какой-то причине», это нормально (см. Документ: http: //docs.meteor. com/#/full/meteor_call): «На клиенте, если вы не пройдете обратный вызов, и вы не находитесь в заглушке, вызов вернется не определен, и вы не сможете получить возвращаемое значение метода». , Вот почему в моем примере я не получил возвращаемое значение, но получил обратный вызов. Поэтому с моим примером вы не получите неопределенный. В чем проблема, когда вы запускаете код, который я предложил? –

+1

спас мою жизнь! – Jerome

Смежные вопросы