Кодирование и декодирование протокольного сообщения не работает с модулем protobujs

Я пытаюсь запустить простую программу для создания прото-сообщения с модулем protobufjs. А также попробуйте сделать кодирование и декодирование с API-интерфейсом protobufjs. Но я не могу увидеть закодированное и декодированное сообщение, если я его распечатал.

Вот простое определение сообщения //smallbank.proto

syntax = "proto3";

message SmallbankTransactionPayload {
    message CreateAccountTransactionData {
        uint32 customer_id = 1;

        string customer_name = 2;

        uint32 initial_savings_balance = 3;

        uint32 initial_checking_balance = 4;
    }

    enum PayloadType {
        PAYLOAD_TYPE_UNSET = 0;
        CREATE_ACCOUNT = 1;
    }

    PayloadType payload_type = 1;
    CreateAccountTransactionData create_account = 2;
}

Вот программа nodejs //test.js

var protobuf = require('protobufjs')

protobuf.load("smallbank.proto", function(err, root) {
    if (err)
        throw err;
    var sbpayload = root.lookupType("SmallbankTransactionPayload");

    var account = {
        payload_type: sbpayload.PayloadType.CREATE_ACCOUNT,
        create_account: {
            customer_id: 1,
            customer_name: 'rajkumar',
            initial_savings_balance: 100000,
            initial_checking_balance: 100000
        }
    };
    paylod_err = sbpayload.verify(account);
    if(paylod_err )
        throw paylod_err;
    var message = sbpayload.create(account);
    var buf = sbpayload.encode(message).finish();

    console.log('test message:', account)
    console.log('encoded test message:', buf)
    console.log('encoded test message decoded:', sbpayload.decode(buf));

});

Вывод вышеуказанной программы $node test.js

тестовое сообщение: { payload_type: 1, create_account: { customer_id: 1, customer_name: 'rajkumar', initial_savings_balance: 100000, initial_checking_balance: 100000 } }

закодированное тестовое сообщение:

закодированное тестовое сообщение расшифровано: SmallbankTransactionPayload {}

Используемые API, перечисленные здесь - https://www.npmjs.com/package/protobufjs Я использую версию узла - v8.11.1 protobufjs версия 6.8.6

Пожалуйста, кто-нибудь, помогите мне, что здесь пошло не так?

0 ответов

Другие вопросы по тегам