this.userId 在通过 DDP 调用的方法中未定义

this.userId undefined in method called via DDP

此 Meteor 服务器无法获取从远程 DDP.call 调用的方法中的 userId。如何从远程 DDP 获取调用该方法的 userId?谢谢

//app 1 server
let app2_Conn = DDP.connect('http://localhost:4000');
Meteor.methods ({
  'callOut': () => {
    app2_Conn.call('app2_method', args);
  }
});

//app 2 server
Meteor.methods ({
  'app2_method': () => {
    const id = Meteor.userId(); //null
    const iD = this.userId;     //undefined
  }
});

因为你使用了箭头函数。箭头函数改变了 this 的绑定方式。

更改为:

Meteor.methods({
  'app2_method'() {
    const id = this.userId;
  }
});