Установка пользовательского свойства в mongoosejs - PullRequest
0 голосов
/ 23 января 2019

У меня есть следующая схема:

const playerSchema = mongoose.Schema({

    firstName: {
        type: String,
        required: true,
        trim: true,
        maxlength: 50,
        lowercase: true
    },
    lastName: {
        type: String,
        required: true,
        trim: true,
        maxlength: 50,
        lowercase: true
    },
    displayName: {
        type: String,
        set: getDisplayName
    },
    photoUrl: String,
    playerType: String,
    teams: [
        {
            type: mongoose.Schema.ObjectId,
            ref: 'Team'
        }
    ]

})

Теперь я хочу установить displayName таким образом, чтобы первая буква firstName была заглавной, а затем пробела и фамилии.Теперь я использую для этого следующую функцию:

const getDisplayName = function() {

        let firstName = this.firstName
        const extractedFirstName = firstName.substring(0, 1);
        return `${extractedFirstName.toUpperCase()} ${this.lastName}`
}

Теперь мой вопрос, можно ли использовать this.firstName, он будет работать успешно?будет ли проблема при настройке displayName, когда firstName и lastName еще не установлены и не сохранены.Мне нужен совет специалиста здесь.

...