如何向 GUN 中的 PUT 请求添加属性?
how to add attributes to a PUT request in GUN?
我的 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
请求中,以便所有对等方也能获得它?
@micha-roon 你直接跳到了 GUN 的 core/internal 电线细节,这不是最容易开始的事情,但这是我所做的,我猜这就是你正在寻找的东西:
(如果没有,请发表评论,我会更新)
它的作用是为 GUN 中的所有出站消息添加一个 DEBUG 标志,您可以更改它以添加其他元数据或信息
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);
})
我的 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
请求中,以便所有对等方也能获得它?
@micha-roon 你直接跳到了 GUN 的 core/internal 电线细节,这不是最容易开始的事情,但这是我所做的,我猜这就是你正在寻找的东西:
(如果没有,请发表评论,我会更新)
它的作用是为 GUN 中的所有出站消息添加一个 DEBUG 标志,您可以更改它以添加其他元数据或信息
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);
})