我有一个node-js作为测试基础架构的一部分,其行为类似于缓存,我们使用它来确保正确生成请求,我们发送给它的一种请求是protobuf请求,以验证发送请求我们将它存储在缓存对象中,然后根据uri我们检索它(使用uri作为密钥)。
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)));
});
对于正常的发布/获取请求,这工作正常,但是我无法以二进制格式获取protobuf请求,使用调试我可以看到它添加到缓存但我无法弄清楚如何返回它,最好的情况是使用对象和模板返回json演示文稿,如果已经存在的库,如果不可能返回字节,客户端可以将它们转换为protobbuf
答案 0 :(得分:1)
有一个protobufjs
moduel可以在Node中使用协议缓冲区:
我无法弄清楚如何返回它,最好的情况是使用对象和模板返回json演示文稿(如果已存在的库)
您可以使用protobufjs
中的Message.decode对缓冲区进行解码,如果需要,您还可以发送相同数据的JSON表示。
有一篇非常好的文档: