2017-04-04 211 views
0

我有一個node-js作爲測試基礎結構的一部分,其行爲類似於緩存,我們使用它來確保請求生成正確,我們發送給它的一種請求類型是protobuf請求,驗證發送的請求,我們將它存儲在緩存對象中,然後根據uri我們檢索它(使用uri作爲關鍵字)。返回protobuf對象爲json

var store = function(req,res) { 
    obj['body'] = req.body; 
    originalUrl = req.originalUrl; 
    cache.record(originalUrl, obj); 
} 

router.get('/cache', function (req, res) { 
    var key = req.query['originalUrl']; 
    res.set('Content-Type', 'application/json'); 
    res.send(JSON.stringify(cache.get(key))); 
}); 

正常後/ get請求,這是工作的罰款,但我遇到了麻煩以二進制格式protobuf的要求,使用調試我可以看到它添加到緩存中,但我無法弄清楚如何要返回它,最好的情況是返回使用對象和模板的json演示文稿,如果這是不可能的返回字節和客戶端可以將它們轉換爲protobbuf的庫已經存在的庫

回答

1

有一個protobufjs模塊與Node中的協議緩衝區一起工作:

我無法弄清楚如何返回它,最好的情況是使用對象和模板,如果該庫已存在

返回JSON介紹您可以使用protobufjs中的Message.decode解碼緩衝區,如果需要,您可以發送相同數據的JSON表示。

有一個很好的文檔: