Я пытаюсь создать новый «профиль» коллекции при запуске Accounts.onCreateUser, однако получаю сообщение об ошибке ReferenceError: Profile не определен. Я предполагаю, что это проблема порядка загрузки. Если я перемещаю файл схемы в папку lib, он работает, однако я пытаюсь использовать файловую структуру, которая теперь рекомендуется на сайте Meteor.
Может кто-нибудь, пожалуйста, дайте мне знать, что мне не хватает. Я новичок в импорте и экспорте, так что это может быть связано с этим.
Путь: imports/profile/profile.js
import { Mongo } from 'meteor/mongo';
import { SimpleSchema } from 'meteor/aldeed:simple-schema';
SimpleSchema.debug = true;
Profile = new Mongo.Collection("profile");
Profile.allow({
insert: function(userId, doc) {
return !!userId;
},
update: function(userId, doc) {
return !!userId;
},
remove: function(userId, doc) {
return !!userId;
}
});
var Schemas = {};
Schemas.Profile = new SimpleSchema({
userId: {
type: String,
optional: true
},
firstName: {
type: String,
optional: false,
},
familyName: {
type: String,
optional: false
},
});
Profile.attachSchema(Schemas.Profile);
Путь: server/userRegistration/createUser.js
Meteor.startup(function () {
console.log('Running server startup code...');
Accounts.onCreateUser(function (options, user) {
if (options.profile && options.profile.roles) {
Roles.setRolesOnUserObj(user, options.profile.roles);
Profile.insert({
userId: user._id,
firstName: options.profile.firstName,
familyName: options.profile.familyName,
});
}
if (options.profile) {
// include the user profile
user.profile = options.profile;
}
return user;
});
});