1 | var protobuf = require('protobufjs')
|
2 |
|
3 | protobuf.load("test/awesome.proto", function(err, root) {
|
4 | if (err)
|
5 | throw err;
|
6 |
|
7 | // Obtain a message type
|
8 | var AwesomeMessage = root.lookupType("awesomepackage.AwesomeMessage");
|
9 |
|
10 | // Exemplary payload
|
11 | var payload = {
|
12 | awesomeField: "AwesomeString",
|
13 | lastname: 'bob'
|
14 | };
|
15 |
|
16 | // Verify the payload if necessary (i.e. when possibly incomplete or invalid)
|
17 | var errMsg = AwesomeMessage.verify(payload);
|
18 | if (errMsg)
|
19 | throw Error(errMsg);
|
20 |
|
21 | // Create a new message
|
22 | var message = AwesomeMessage.create(payload); // or use .fromObject if conversion is necessary
|
23 |
|
24 | // Encode a message to an Uint8Array (browser) or Buffer (node)
|
25 | var buffer = AwesomeMessage.encode(message).finish();
|
26 | // ... do something with buffer
|
27 |
|
28 | // Decode an Uint8Array (browser) or Buffer (node) to a message
|
29 | var message = AwesomeMessage.decode(buffer);
|
30 | // ... do something with message
|
31 |
|
32 | // If the application uses length-delimited buffers, there is also encodeDelimited and decodeDelimited.
|
33 |
|
34 | // Maybe convert the message back to a plain object
|
35 | var object = AwesomeMessage.toObject(message, {
|
36 | longs: String,
|
37 | enums: String,
|
38 | bytes: String,
|
39 | // see ConversionOptions
|
40 | });
|
41 |
|
42 | console.log(object)
|
43 | });
|