Meteor.users集合在服务器上未定义

时间:2017-11-08 20:57:51

标签: meteor

这段代码有什么问题?它在“服务器”文件夹中。这里的第11行在错误日志中被调出。

import { Accounts } from 'meteor/accounts-base';
import generatePincode from '../../../utils/generate-pincode';
import Meteor from 'meteor/meteor';

Accounts.onCreateUser((options, user) => {
  const customizedUser = Object.assign({
    'pincode': generatePincode(4),
  }, user);

  // check that the pincode doesn't already exist
  const existingUser = Meteor.users.findOne({
    'pincode': customizedUser.pincode,
  });
  if (existingUser) {
    throw new Meteor.Error(500,
      'Duplicate pincode generated, please try again.');
  }

  // We still want the default hook's 'profile' behavior.
  if (options.profile) {
    customizedUser.profile = options.profile;
  }
  return customizedUser;
});

终端(服务器)记录:

  

调用方法'createUser'时出现异常TypeError:无法读取未定义的属性'findOne'

1 个答案:

答案 0 :(得分:2)

您的导入Meteor行不正确,这意味着您正在使用默认或命名空间导出。在Meteor的情况下,这意味着你得到一个对象:

def getIdsWithValues(ids: Seq[String]): Map[K, V] = {
  val values = Observable.from(keyValueIds)
   .flatMap(id => couchbaseBucket.async()
     .get(id)
     .materialize()
     .take(1)
     .map( res => if ( res.isOnComplete() )
                     (id, None)
                  else 
                     (id, Some(res.getValue))
  ...
}

试试这个直接获取Meteor:

{
  Meteor: [Meteor object],
  global: [Window on client and global on server],
  meteorEnv: [env vars]
}

那应该解决它。

如果没有,请再次尝试import { Meteor } from 'meteor/meteor'; meteor remove accounts-password