Чтение данных из базы данных mongodb с помощью vuejs - PullRequest
0 голосов
/ 11 ноября 2018

Я создаю веб-приложение для визуализации в реальном времени температуры в моей комнате.В настоящее время я читаю значение с помощью raspberry и затем загружаю базу данных mongodb.Теперь, чтобы отобразить его в реальном времени в моем браузере, как мне это сделать?Я использую node.js и vue.js вместе с Express.Как передать значение в vue.js в режиме реального времени?

var App = Vue.component('App',{
    template: "<h1> {{title}} </h1>",
    data() {
    
        let test= "hello";
        return {title: test};
    }
});

new Vue({
    el:"#app"
});
<div id="app">
   <App></App>
</div>

1 Ответ

0 голосов
/ 11 ноября 2018

Ваш код в бэкэнде должен быть таким:

//get the value from db
//create a variable tmp that will receives temperature from db
let tmp;


var router = express.Router();
router.get('/temperature', function(req, res) {
  res.json({
    temperature: tmp
  });
});


app.use('/api', router);

впереди у вас есть доступ к этому API:

локальный: 8080 / API / температура

И, используя axios , вы можете позвонить своему бэкэнду и вернуть температуру в реальном времени

var App = Vue.component('App', {
  template: "<h1> {{temperature}} </h1>",
  data() {


    return {
      temperature: 0
    };
  },
  created: function() {

    this.fetchTemp('api/temperature');

    setInterval(()=> {
      this.fetchItems('api/temperature');
    }, 500);
  },

  methods: {

    fetchTemp(uri) {

      axios.get(uri).then((res) => {
        this.temperature = res.data.temperature;
      });
    },
  }
});

I tried to simulate your use case by getting the current time from REST API and show it every second 

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...