отправлять данные последовательного порта на внешний интерфейс с помощью экспресс-узла - PullRequest
0 голосов
/ 25 июня 2018

Я хочу отправить данные последовательного порта в интерфейс браузера с помощью экспресс. Пока мой код выглядит так:

var SerialPort = require("serialport");
var serialport = new SerialPort("/dev/cu.usbmodem1421");

var express = require('express');
var app = express();

var datenFromA;

serialport.on('open', function(){
 console.log('Serial Port Opend');
 serialport.on('data', function(data){
   datenFromA = data[0];
   console.log(datenFromA);
 });
});


app.get('/', function (req, res) {
 res.send('Hello World')
})

app.listen(3000);

Вместо 'Hello World' я хочу отправить значение переменной datenFromA в браузер. Есть идеи, как передать значение в функцию app.get?

Заранее спасибо.

1 Ответ

0 голосов
/ 25 июня 2018

По сути, вам нужно подождать, пока вы не получите событие. Быстрый грязный пример, приведенный ниже:

const SerialPort = require("serialport");
const serialport = new SerialPort("/dev/cu.usbmodem1421");

const express = require('express');
const app = express();

// Only need to do this once.
serialport.on('open', () => console.log('Serial Port Opend'));

app.get('/', async (req, res) => {
  const promise = new Promise((resolve, reject) => {
    serialport.on('data', (data, err) => {
      if (err) {
        reject(err);
        return;
      }
      resolve(data[0]);
    });
  })

  const data = await promise;

  res.json(data);
})

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