[英]How to using asynchronous events in restify
我有一個簡單的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請求,則僅運行一次處理程序將無濟於事; 您將需要應用程序級邏輯來將響應映射到請求。
或者,您可以使每個新請求在寫入串行端口之前等待任何未決請求完成。 (承諾使此操作變得更加簡單)
如果收到一個錯誤的請求,請確保不會永遠掛死。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.