【问题标题】:How to using asynchronous events in restify如何在restify中使用异步事件
【发布时间】:2013-06-24 09:53:09
【问题描述】:

我有一个简单的 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);;
});

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

【问题讨论】:

    标签: node.js asynchronous restify node-serialport


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-10
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多