1

我有一个简单的restify webservice,它调用一个向串口写入命令的函数

var restify = require('restify')
var com = require("serialport");

server.get('/scaleGetWeight/', getScaleWeight);
server.head('/scaleGetWeight/', getScaleWeight);

function getScaleWeight(req, res, next) {
    serialPort.write("S\r\n");
    res.send(?);
}

串口在事件中返回请求

serialPort.on('data', function(data) {
  console.log(data);;
});

将结果返回给客户的正确方法是什么?

4

1 回答 1

0

您需要在 RESTful getter 函数中添加该事件处理程序,并在处理程序内部调用res.send()

您仍然需要确定哪些串行端口响应属于哪些 HTTP 请求。

如果一次收到两个 HTTP 请求,只运行一次处理程序将无济于事;您将需要应用程序级逻辑来将响应映射到请求。

或者,您可以让每个新请求在写入串行端口之前等待任何挂起的请求完成。(promise 让这件事变得更简单)
确保如果你收到一个错误的请求,你不会永远挂起。

于 2013-06-27T03:17:30.917 回答