我有一个简单的Restify Web服务,该服务调用一个将命令写入串行端口的函数
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);;
});
将结果返回给客户的正确方法是什么?
最佳答案
您需要在RESTful getter函数中添加该事件处理程序,并在处理程序中调用res.send()
。
您仍然需要确定哪些串行端口响应属于哪些HTTP请求。
如果一次获得两个HTTP请求,则只运行一次处理程序将无济于事;您将需要应用程序级逻辑来将响应映射到请求。
或者,您可以使每个新请求在写入串行端口之前等待任何未决请求完成。 (承诺使此操作变得更加简单)
如果收到一个错误的请求,请确保不会永远挂死。
关于node.js - 如何在Restify中使用异步事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17333957/