0

我需要在流星服务器方法之外使用 Accounts.setPassword,但在服务器端。在这种情况下,对于集合,我使用 Fiber 包装器,但它不适用于 Accounts.setPassword。

Fiber(function(){Accounts.setPassword(msg.user_id, msg.password);}).run();
4

1 回答 1

0

我刚刚测试过,很简单

if (Meteor.isServer) {
  Meteor.startup(function () {
    Accounts.setPassword("Jp2G9TJLHwqagQmMr", "654321")
  });
}

在服务器端工作得很好。但是,如果您在回调中传递函数(作为事件处理程序),那么不要忘记将其包装成Meteor.bindEnvironment

something.on('event',
  Meteor.bindEnvironment(function(){
    Accounts.setPassword(msg.user_id, msg.password);
  },
  function (err) {
    console.log('failed to bind env: ', err);
  })
);
于 2013-07-28T19:09:18.410 回答