尝试使用协议缓冲区时,goog未定义错误 - 谷歌的数据交换格式

时间:2016-04-05 05:57:51

标签: node.js module npm protocol-buffers

我正在尝试使用协议缓冲区 - Google的数据交换格式,指的是https://github.com/google/protobuf/tree/master/js

我试图按照文档我能够获得协议编译器的设置并且能够

 protoc --js_out=library=myproto_libs,binary:. messages.proto 

但当我做npm安装google-protobuf我正在

npm ERR! 404 Registry returned 404 for GET on https://registry.npmjs.org/google-
npm ERR! 404
npm ERR! 404 'google-protobuf' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

如果我编写可以使用生成的二进制文件的样本,则表示goog未定义

goog.require('com.nec.eva.msap.proto.alerts.FaceAlert');
var message = com.nec.eva.msap.proto.alerts.FaceAlert();
message.watchlist_id("1");
message.candidate_id("25");
message.gender("female");
bytes = message.serializeBinary();

我不知道为什么我无法进行npm安装以及goog.require(' com.nec.eva.msap.proto.alerts.FaceAlert')的原因。将使用生成的二进制文件请帮助我几乎花了一天时间来理解但没有得到它

3 个答案:

答案 0 :(得分:1)

有问题和

API尚未not well-documented

您需要使用protoc messages.proto --js_out=import_style=commonjs,binary:.

进行编译

或设置

var jspb = require('google-protobuf')
var goog = jspb

答案 1 :(得分:0)

最好在http://node-modules.com/search?q=protocol+buffers上搜索。这个很受欢迎,应该有效:https://github.com/dcodeIO/protobuf.js

答案 2 :(得分:0)

简单地说,google-protobuf不在npm存储库中,因此安装它将不起作用(请参阅https://www.npmjs.com/package/google-protobuf)。但是,您可以尝试使用许多协议缓冲库: