Как я могу сгенерировать уникальный ha sh и сохранить его под ключом в моем документе Mon goose, не требуя от пользователя ввода чего-либо? Я знаю, что могу взять необходимое, но в то же время я хотел бы, чтобы он оставался необходимым, чтобы он всегда существовал. Вот мой код:
модель / пользователь. js
let ChannelSchema = new Schema({
provider: {type: String},
stream_key: {type: String},
auth: {
access_token: {type: String},
refresh_token: {type: String},
},
profile: {
id: String,
login: String
},
}, { timestamps: true })
let UserSchema = new Schema({
name: {type: String, required: true, unique: true},
email: {type: String, required: true, unique: true},
password: {type: String, required: true, select: false},
stream_key: {type: String, required: true },
channel: [ ChannelSchema ]
});
let createStreamKey = (next) => {
let user = this;
if(!user.isNew('stream_key')) {
return next();
}
const id = crypto.randomBytes(20).toString('hex');
user.stream_key = `sinuous_${id}`;
next();
}
UserSchema.pre('save', createStreamKey);
Ошибка
Error [ValidationError]: User validation failed: stream_key: Path `stream_key` is required.
at ValidationError.inspect (C:\Users\Who\WebstormProject\what\node_modules\mongoose\lib\error\validation.js:61:24)
at formatValue (internal/util/inspect.js:563:31)
at inspect (internal/util/inspect.js:221:10)
at formatWithOptions (internal/util/inspect.js:1693:40)
at Object.Console.<computed> (internal/console/constructor.js:272:10)
at Object.log (internal/console/constructor.js:282:61)
at C:\Users\Who\WebstormProject\what\routes\auth.js:23:15
at processTicksAndRejections (internal/process/task_queues.js:93:5) {
errors: {
stream_key: MongooseError [ValidatorError]: Path `stream_key` is required.