2016-04-15 22 views
7

Tôi đang di chuyển ứng dụng Meteor từ Meteor 1.2 sang Meteor 1.3 và làm theo hướng dẫn trên http://guide.meteor.com/methods.html#validated-method để tạo phương thức được xác thực.Phương pháp xác thực Meteor không được tìm thấy

Khi tôi gọi phương thức, tôi tin rằng mô phỏng phía máy khách đang xảy ra, vì tôi có thể đăng xuất vào bảng điều khiển, nhưng điều này luôn bị theo sau bởi lỗi 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); 
    }, 
}); 

Khách hàng console

Object {email: "[email protected]", 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 

Trả lời

9

Tôi tin rằng lý do này không được làm việc vì tôi đã không khởi tạo javascript trên máy chủ lúc khởi động.

Thêm cố định vấn đề sau:

/imports/startup/server/index.js

import './register-api.js'; 

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

import '/imports/api/accounts/methods.js'; 
Các vấn đề liên quan