2017-05-01 9 views
0

mdg:validated-methodinsert新しいコレクションを実装しようとしていますが、コードによってundefinedエラーメッセージが返されます。 runの後にconsole.log(profileCandidate)がオブジェクトを返します。 insertでの作業が停止しているようです。検証済みメソッドが起動し、定義されていないエラーが返される

パス:imports/api/profileCandidate/methods.js

import SimpleSchema from 'simpl-schema'; 
import { ValidatedMethod } from 'meteor/mdg:validated-method'; 

import ProfileCandidate from './profileCandidate.js'; 

export const insertProfileCandidate = new ValidatedMethod({ 
    name: 'profileCandidate.insert', 
    validate: new SimpleSchema({ 
    'firstName': { type: String }, 
    }).validator(), 
    run(profileCandidate) { 
    console.log("profileCandidate", profileCandidate); 

    ProfileCandidate.insert({ 
     userId: Meteor.userId(), 
     createdAt: new Date(), 
     name: { 
     first: profileCandidate.firstName, 
     }, 
    }); 
    }, 
}); 

パス:imports/api/profileCandidate/profileCandidate.js

import { Meteor } from 'meteor/meteor'; 
import { Mongo } from 'meteor/mongo'; 
import { check } from 'meteor/check'; 
import SimpleSchema from 'simpl-schema'; 

export const ProfileCandidate = new Mongo.Collection('profileCandidate'); 

ProfileCandidate.schema = new SimpleSchema({ 
    userId: { 
    type: String, 
    }, 
    createdAt: { 
    type: Date, 
    }, 
    name: Object, 
    'name.first': String, 
}); 

ProfileCandidate.attachSchema(ProfileCandidate.schema); 
+0

シンプルなスキーマパッケージ 'SimpleSchema.debug = true'のデバッグモードを有効にしてください。 –

+0

エラーは表示されません。 'ProfileCandidate.insert'が起動しない場合とほぼ同じです。 – bp123

答えて

0

それは方法に誤りがありませんでしたが判明しました。エラーは、私がスキーマをどのようにインポートしていたかにあります。 import ProfileCandidate from './profileCandidate.js';import { ProfileCandidate } from './profileCandidate.js';に変更する必要がありました。なぜ中括弧が必要なのか誰にでもわかることができれば、私はそれを感謝するでしょう。

+1

あなたのスキーマファイルから 'export default const insertProfileCandidate'を実行した場合、' {} 'を使わなくてもインポートを使用できました –

関連する問題