0

私は流星であり、コーディングの初心者です。私は一日中、aldeed:autoform と aldeed:collection2 を使ってプロファイル情報を Meteor.users に追加しようとしました。私の成功はさまざまで、ほぼ望んでいたものを手に入れました (mongo に投稿しましたが、現在の ID にアタッチする代わりに新しい ID を作成しました)。今、私は取得し続けます

SimpleSchema invalid keys ... 0: Object
name: "emails"
type: "expectedArray"

そして、私が「送信」したものは、Mongo にはまったく投稿されません。

ここに私が必要だと思うすべてのものがあります: collections/simpleSchema.js

Meteor.users.allow({
    update: function (userId, doc){
        return !!userId;
    }
});


Schema.UserProfile = new SimpleSchema({
    firstName: {
        type: String,
        optional: true
    },
    lastName: {
        type: String,
        optional: true
    },
    birthday: {
        type: Date,
        optional: true
    },
    grade: {
        type: String,
        allowedValues: ['5', '6', '7', '8'],
        optional: true
    }
});

Schema.User = new SimpleSchema({        
    username: {
        type: String,
        // For accounts-password, either emails or username is required, but not both. It is OK to make this
        // optional here because the accounts-password package does its own validation.
        // Third-party login packages may not require either. Adjust this schema as necessary for your usage.
        optional: true,
        autoform: {
            type: "hidden"
        }
    },
    emails: {
        type: Array,
        // For accounts-password, either emails or username is required, but not both. It is OK to make this
        // optional here because the accounts-password package does its own validation.
        // Third-party login packages may not require either. Adjust this schema as necessary for your usage.
        optional: true,
        autoform: {
            type: "hidden"
        }
    },
    "emails.$": {
        type: Object,
        autoform: {
            type: "hidden"
        }
    },
    "emails.$.address": {
        type: String,
        regEx: SimpleSchema.RegEx.Email,
        autoform: {
            type: "hidden"
        }
    },
//    "emails.$.verified": {
//        type: Boolean
//    },
    createdAt: {
        type: Date,
        optional: true,
        autoValue: function(){
            return new Date();
        },
        autoform: {
            type: "hidden"
        }
    },
    profile: {
        type: Schema.UserProfile,
        optional: true
    },
    // Make sure this services field is in your schema if you're using any of the accounts packages
    services: {
        type: Object,
        optional: true,
        blackbox: true,
        autoform: {
            type: "hidden"
        }
    }
    // Add `roles` to your schema if you use the meteor-roles package.
    // Option 1: Object type
    // If you specify that type as Object, you must also specify the
    // `Roles.GLOBAL_GROUP` group whenever you add a user to a role.
    // Example:
    // Roles.addUsersToRoles(userId, ["admin"], Roles.GLOBAL_GROUP);
    // You can't mix and match adding with and without a group since
    // you will fail validation in some cases.
    //roles: {
    //    type: Object,
    //    optional: true,
    //    blackbox: true
    //}
    // Option 2: [String] type
    // If you are sure you will never need to use role groups, then
    // you can specify [String] as the type
//    roles: {
//        type: [String],
//        optional: true
//    }
});

Meteor.users.attachSchema(Schema.User);

client.js

SimpleSchema.debug = true

Template.NewUser.helpers({
  updateUserForm: function(){
    return Meteor.user;
  }
});

サーバー.js

Meteor.methods({
 update: function(doc) {
   // Important server-side check for security and data integrity
   check(doc, Meteor.users);
    Meteor.users.clean(doc);
 }
});

読んでくれてありがとう!

4

1 に答える 1