Node.js和协议缓冲区 – 如何parsingpost中的PB

我按PB架构加载如下:

var Schema = require('protobuf').Schema; var schema = new Schema(fs.readFileSync('/home/ubuntu/workspace/test.desc')); 

那么对于一个职位,我期望一个pb,我有以下。

  app.post('/mypost', function(req, res){ var Feed = schema['MyRequest']; var aFeed = Feed.parse(req.body); var serialized = Feed.serialize(aFeed); }); 

我对node.js比较陌生,也获得了发布数据。 req.body是来自发布数据的缓冲区吗?

 TypeError: Argument should be a buffer at Function.parse (unknown source) at /home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbNodejsServer/bidder.js:71:22 at callbacks (/home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbNodejsServer/node_modules/express/lib/router/index.js:272:11) at param (/home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbNodejsServer/node_modules/express/lib/router/index.js:246:11) at pass (/home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbNodejsServer/node_modules/express/lib/router/index.js:253:5) at Router._dispatch (/home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbNodejsServer/node_modules/express/lib/router/index.js:280:4) at Object.handle (/home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbNodejsServer/node_modules/express/lib/router/index.js:45:10) at next (/home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbNodejsServer/node_modules/express/node_modules/connect/lib/http.js:204:15) at Object.methodOverride [as handle] (/home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbNodejsServer/node_modules/express/node_modules/connect/lib/middleware/methodOverride.js:35:5) at next (/home/ubuntu/workspace/rtbopsConfig/rtbServers/rtbNodejsServer/node_modules/express/node_modules/connect/lib/http.js:204:15) 

在http和nodejs中查找简单请求响应处理的具体示例。 这应该有助于您进入parsing步骤。 http://nodejs.org/api/all.html#all_class_http_serverrequest http://nodejs.org/api/http.html#http_event_data

例:

 var options = { host: 'www.google.com', port: 80, path: '/upload', method: 'POST' }; var req = http.request(options, function(res) { console.log('STATUS: ' + res.statusCode); console.log('HEADERS: ' + JSON.stringify(res.headers)); res.setEncoding('utf8'); res.on('data', function (chunk) { console.log('BODY: ' + chunk); }); }); req.on('error', function(e) { console.log('problem with request: ' + e.message); }); // write data to request body req.write('data\n'); req.write('data\n'); req.end(); 

例子看这个答案请求和响应的说明https://stackoverflow.com/a/4696338/51700

Cookie的另一个例子是https://stackoverflow.com/a/4581610/51700