我正在将我的Meteor应用程序从Meteor 1.2迁移到Meteor 1.3并按照
http://guide.meteor.com/methods.html#validated-method上的指南创建一个经过验证的方法.
当我调用该方法时,我认为客户端模拟正在发生,因为我可以注销到控制台,但总是会出现错误方法’…’未找到.
/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