Как добавить атрибуты для запроса PUT в GUN? - PullRequest
0 голосов
/ 24 марта 2020

У меня есть следующий код на моей HTML странице

    Gun.on('opt', function (ctx) {
        if (ctx.once) {
            return
        }
        this.to.next(ctx)
        window.auth = ctx.opt.auth
        ctx.on('get', function (msg) {
            msg.auth = window.auth
            this.to.next(msg)
        })
        ctx.on('put', function (msg) {
            msg.put.auth = window.auth
            this.to.next(msg)
        })
    })

    var gun = Gun({
        peers: ['http://localhost:8765/gun'],
        auth: {
            user: 'mroon',
            password: 'titi'
        }
    })

На сервере я просто наблюдаю запросы

Gun.on('create', function(db) {
    console.log('gun created')
    this.to.next(db);

    db.on('get', function(request) {
        // this request contains the auth attribute from the client
        this.to.next(request);
    });
    db.on('put', function(request) {
        // this request does not contain the auth attribute from the client
        this.to.next(request);
    });
});

каждый раз, когда я запрашиваю график с помощью gun.get('someAttribute') запрос на сервере содержит атрибут auth.

, но при вызове gun.get('someAttribute').put({attribute: 'my new value'}) запрос на сервере не содержит атрибут auth.

Как можно Я добавляю атрибут auth в запрос put таким образом, чтобы все узлы тоже получили его?

1 Ответ

0 голосов
/ 24 марта 2020

@ micha-roon, вы прыгнули прямо к деталям ядра / внутреннего провода GUN, с чего начать нелегко, но я думаю, вот что я делаю:

(если нет, просто прокомментируйте и я обновлю)

Для этого он добавляет флаг DEBUG ко всем исходящим сообщениям в GUN, вы можете изменить его, добавив другие метаданные или информацию

Gun.on('opt', function(root){
  if(!root.once){
    root.on('out', function(msg){
      msg.DBG = msg.DBG || +new Date;
      this.to.next(msg);
    });
  }
  this.to.next(root);
})

Также еще один хороший справочник: https://github.com/zrrrzzt/bullet-catcher

...