Есть ли способ сохранить каждый текущий идентификатор пользователя, чтобы я мог использовать его в хуке mon goose? - PullRequest
1 голос
/ 16 марта 2020

Я создал класс JavaScript, который присоединяет определенные ловушки к любой схеме mon goose и создает в базе данных данные журнала об этой определенной схеме (когда создается схема, что было сохранено, когда она обновляется ранее). и после моментального снимка данных, а также того, какой пользователь сделал это изменение / сохранение)

 let hooks = {
  preSave : false,
  preDeleteMany : false,
  postInsertMany : false,
  postDeleteMany : false
}
new GenericHook(UserSchema, 'User', hooks).init();

/**
 * @typedef User
 */
module.exports = mongoose.model('User', UserSchema);

Вот как некоторые ловушки присоединяются к схеме, один из методов класса выглядит следующим образом:

// POST: Triggers when Model.findOneAndDelete() method is called
    createPostFindAndDeleteHook(){
        let that = this;
        this.genericSchema.post('findOneAndDelete', async function(document){
            let currentUserId = localStorage.getItem('userId');
            let options = {
                model : that.schemaName,
                action : actions.DELETE,
                user : currentUserId ? currentUserId : null,
                before_data : document,
                after_data : null
            }

            await log.create(options);
        });
    }

Хуки прикреплены, и они отлично работают, сохраняют нужные данные в полях до и после, но проблема в том, что сейчас, используя пакет node-localstorage, последний пользователь, который вошел в систему, переопределяет элемент userId в локальном хранилище, сохраняя неправильный userId в базе данных. Элемент устанавливается, когда пользователь успешно входит в систему.

localStorage.setItem('userId' , userData[0]._id);

Есть ли способ сохранить идентификатор пользователя для каждого пользователя и получить к нему доступ на крючке, чтобы я могу сохранить нужного пользователя, создавая / обновляя / удаляя что-то из базы данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...