Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点节俭反序列化_Javascript_Node.js_Thrift_Thrift Protocol - Fatal编程技术网

Javascript 节点节俭反序列化

Javascript 节点节俭反序列化,javascript,node.js,thrift,thrift-protocol,Javascript,Node.js,Thrift,Thrift Protocol,我正在尝试执行简单的节俭序列化/反序列化,但如果反序列化失败,则会显示以下消息: /home/przemek/workspace/leviathan/node_modules/thrift/lib/thrift/protocol.js:350 throw Error("Invalid type: " + type); ^ Error: Invalid type: at Error (unknown source) at TBinaryProt

我正在尝试执行简单的节俭序列化/反序列化,但如果反序列化失败,则会显示以下消息:

/home/przemek/workspace/leviathan/node_modules/thrift/lib/thrift/protocol.js:350
      throw Error("Invalid type: " + type);
            ^
Error: Invalid type: 
    at Error (unknown source)
    at TBinaryProtocol.skip (/home/przemek/workspace/leviathan/node_modules/thrift/lib/thrift/protocol.js:350:13)
    at Object.Profile.read (/home/przemek/workspace/leviathan/gen-nodejs/Profile_types.js:49:15)
    at deserialize (/home/przemek/workspace/leviathan/client.js:43:13)
    at /home/przemek/workspace/leviathan/client.js:51:2
    at serialize (/home/przemek/workspace/leviathan/client.js:35:3)
    at Object.<anonymous> (/home/przemek/workspace/leviathan/client.js:49:1)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)

我们在node.js中使用thrift时遇到了一些问题(使用了一些diff libs),我们编写了一个示例,其中添加了一些修复,请在那里查看-

function serialize(data, callback) {
    var buffer = new Buffer(data);
    var transport = new thrift.TFramedTransport(buffer);
    var protocol = new thrift.TBinaryProtocol(transport);

    data.write(protocol);

    callback(transport.outBuffers)
 }

 function deserialize(data, callback){
    var transport = new thrift.TFramedTransport(data);
    var protocol  = new thrift.TBinaryProtocol(transport);
    var aProfile = new profile.Profile();

    aProfile.read(protocol);

    callback(aProfile);
 }

var aProfile = new profile.Profile({exposure:2,kineticCycleTime:3});
serialize(aProfile, function(serialized){
    log('serialization complete:' + serialized);
    deserialize(serialized, function(deserialized){
        log('deserialization complete');
        log(JSON.stringify(deserialized));
    });
});