npm install protocol-buffers
    协议文件 test.proto

    1. message Course {
    2. required float id = 1;
    3. required string name = 2;
    4. repeated Lesson lesson = 3;
    5. }
    6. message Lesson {
    7. required float id = 1;
    8. required string title = 2;
    9. }

    测试 test.js

    1. const fs = require('fs');
    2. const protobuf = require('protocol-buffers');
    3. // 根据协议,编译出一个js逻辑对象,里面包含encode和decode函数
    4. // 实际写web服务器的时候,注意这个操作可以直接在进程启动就做
    5. // 否则在http处理过程里做的话,是一次不必要的性能消耗
    6. const schemas = protobuf(fs.readFileSync(`${__dirname}/test.proto`));
    7. // encode
    8. const buffer = schemas.Course.encode({
    9. id: 4,
    10. name: 'hh',
    11. lesson: []
    12. })
    13. console.log(buffer)
    14. // decode
    15. console.log(
    16. schemas.Course.decode(buffer)
    17. )

    根据协议,编译出一个js逻辑对象,里面包含encode和decode函数。
    实际写web服务器的时候,注意这个操作可以直接在进程启动就做,否则在http处理过程里做的话,是一次不必要的性能消耗