Как вставить имя пользователя пользователя, используя простую схему для метеора

Я пытаюсь вставить имя пользователя, вошедшего в систему, но всякий раз, когда я отправляю форму. Коллекция никогда не вставляется. Он вставляется только в том случае, если я закомментирую поле createdBy. В настоящее время я использую пакет Учетные записи пользователей в качестве входа/ процедура входа

Вот мой код:

createdBy: {
    type: String,
    autoValue: function() { 
        return this.field('username'); 
    }
},
createdAt: {
    type: Date,
    autoValue: function() {
        return new Date();
    }
}

person Mr.Bill    schedule 12.10.2015    source источник


Ответы (2)


Неважно, решил это, вот что я должен был подавить. Надеюсь, это поможет кому-то.

createdBy: {
        type: String,
        autoValue: function() {
            return Meteor.user().username
        }
    },
    createdAt: {
        type: Date,
        autoValue: function() {
            return new Date();
        }
    }
person Mr.Bill    schedule 12.10.2015
comment
Спасибо за публикацию. Выручил меня :) - person BaconJuice; 03.01.2016

Если вы используете collection2 параллельно, вы можете просто сделать следующее, чтобы правильно проверить его на сервере.

createdBy: {
  type: String,
  denyUpdate: true,      // for a createdBy, shouldn't be able to update.
  autoValue: function () {
    if (this.isInsert) {
      return this.userId;
    }
  },
  allowedValues: function () {
    return Meteor.users.find((doc) => doc._id);
  }
}

(взято из документации autoValue)

person corvid    schedule 12.10.2015