流星如何从服务器获取到客户端的变量值

Meteor how to Get Variable Value from Server to Client?

本文关键字:客户端 变量值 获取 服务器 流星      更新时间:2023-09-26

Hei,

我出于某种原因卡住了。我正在玩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);
    }))
  })
}

我不想将数据保存到集合中,而是在线阅读。如何将可变温度.摄氏度从服务器传递到客户端?我无法在客户端中运行代码,因为我使用的是 NPM require,它仅适用于服务器。

在 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>