0
マイアプリのコードは次のようになります。私はそれらのページにアクセスするとプロトコルバッファのデータのエンコード
main.js
const express = require('express');
const app = express();
const ProtoBuf = require("protobufjs");
let builder = ProtoBuf.loadProtoFile("protos/player.proto")
let Main = builder.build("Main")
let Player = Main.PlayerInfo
app.get('/test1', function (req, res) {
let plr = new Player("name", "123")
let enc = plr.encode()
res.send(`Message is: ${enc}`); // Response 'Message is: ByteBufferNB(offset=0,markedOffset=-1,limit=11,capacity=16)'
});
app.get('/test2', function (req, res) {
let plr = new Player("name", "123")
let enc = plr.encode()
res.send(`Message is: ${enc.toBuffer()}`); // Response 'Message is: name123'
});
app.get('/test3', function (req, res) {
let plr = new Player("name", "123")
let enc = plr.encode()
res.send(`Message is: ${plr.toBuffer()}`); // Response 'Message is: name123'
});
app.listen(3000, function() {
console.log('Example app listening on port 3000!');
});
player.proto
syntax = "proto3";
package Main;
message PlayerInfo {
required string username = 1;
required string password = 2;
}
、私は回答を得ますlike:
/test1 - Message is: ByteBufferNB(offset=0,markedOffset=-1,limit=11,capacity=16)
/test2 - Message is: name123
/test3 - Message is: name123
質問:そのままiはデータを参照
なぜ実施例2及び3、(Iエンコード()とtoBuffer()関数を使用しているという事実にもかかわらず)ecodedありませんか?
をあなたのメッセージのエンコード形式は、(私が思う)する必要があります:022 \ 003123' \ '\ 012 \ 004nameはBuffer.toString(つまり、それは可能です)表示のために '\ 012'、' \ 004'、 '\ 022'、' \ 003'を削除しますか? '\ 012'は' \ n'ですが、他は印刷可能な形式ではありません。 –