未找到流星验证方法

Posted

技术标签:

【中文标题】未找到流星验证方法【英文标题】:Meteor validated method not found 【发布时间】:2016-08-07 03:19:04 【问题描述】:

我正在将 Meteor 应用程序从 Meteor 1.2 迁移到 Meteor 1.3,并按照 http://guide.meteor.com/methods.html#validated-method 上的指南创建经过验证的方法。

当我调用该方法时,我相信客户端模拟正在发生,因为我可以注销到控制台,但这之后总是出现错误 Method '...' not found

/imports/ui/pages/register.js

import Meteor from 'meteor/meteor';
import Template from 'meteor/templating';
import FlowRouter from 'meteor/kadira:flow-router';

// Methods
import createAccount from '/imports/api/accounts/methods.js';

// HTML
import './register.html';

Template.Register_page.events(
  'submit form': function(event) 
    event.preventDefault();

    var user = 
      email: $('#email').val(),
      password: $('#password').val(),
      profile: 
        firstName: $('#firstName').val(),
        lastName: $('#lastName').val()
      
    ;

    createAccount.call(user, function(err) 
      if (err) 
        console.error(err);
       else 
        console.log('User successfully registered');
        FlowRouter.go('Dashboard');
      
    );
  
);

/imports/api/accounts/methods.js

import Meteor from 'meteor/meteor';
import ValidatedMethod from 'meteor/mdg:validated-method';
import SimpleSchema from 'meteor/aldeed:simple-schema';
import Accounts from 'meteor/accounts-base';

export const createAccount = new ValidatedMethod(
  name: 'createAccount',
  validate: new SimpleSchema(
    email:  type: String ,
    password:  type: String ,
    profile:  type: Object ,
    "profile.firstName":  type: String ,
    "profile.lastName":  type: String 
  ).validator(),
  run(user) 
    console.log(user);
    Accounts.createUser(user);
  ,
);

客户端控制台

Object email: "test@mailinator.com", password: "testPassw0rd", profile: Object    methods.js:18
errorClass error: 404, reason: "Method 'createAccount' not found", details: undefined, message: "Method 'createAccount' not found [404]", errorType: "Meteor.Error"    register.js:28

【问题讨论】:

【参考方案1】:

我认为这不起作用的原因是我在启动时没有初始化服务器上​​的 javascript

添加以下内容解决了这个问题:

/imports/startup/server/index.js

import './register-api.js';

/imports/startup/server/register-api.js

import '/imports/api/accounts/methods.js';

【讨论】:

以上是关于未找到流星验证方法的主要内容,如果未能解决你的问题,请参考以下文章

机械硬盘设备未就绪,要如何找到数据

无法在流浪盒上创建工作流星.js 项目

如何使用流星帐户和自动生成添加/编辑用户

流星:隐藏或删除元素?啥是最好的方法

反应和流星“未捕获的类型错误:无法读取未定义的属性'createElement'”

身份验证令牌、本地存储和流星