Javascript 有没有办法保存每个当前用户id,这样我就可以在mongoose钩子中使用它?

Javascript 有没有办法保存每个当前用户id,这样我就可以在mongoose钩子中使用它?,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我创建了一个JavaScript类,它将某些钩子附加到任何mongoose模式,并在数据库中创建关于该模式的日志数据(创建模式时保存了什么,在数据快照之前和之后更新了什么,以及是哪个用户进行了更改/保存) 这就是某些钩子连接到模式的方式,类中的一个方法如下所示: // POST: Triggers when Model.findOneAndDelete() method is called createPostFindAndDeleteHook(){ let that =

我创建了一个JavaScript类,它将某些钩子附加到任何mongoose模式,并在数据库中创建关于该模式的日志数据(创建模式时保存了什么,在数据快照之前和之后更新了什么,以及是哪个用户进行了更改/保存)

这就是某些钩子连接到模式的方式,类中的一个方法如下所示:

// 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);
        });
    }
钩子是附加的,它们工作得很好,在before/after字段中保存正确的数据,但问题是,现在使用节点localstorage包,最后登录的用户会覆盖本地存储中的userId项,从而在数据库中保存错误的userId。当用户成功登录时,会设置该项

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

是否有一种方法可以存储每个用户的用户id并在钩子上访问它,这样我就可以保存正确的用户从数据库中创建/更新/删除某些内容?

嘿!如果您正在构建的是某种API服务器,那么用户应该能够将其ID与API请求一起发送。或者你正在构建其他东西?事实上,它是一个API服务器,用户可以在请求中发送他们的ID,但问题是我无法访问mongoose中间件中的请求对象。哦,我明白了。据我所知,没有直接的方法可以做到这一点,但是,有解决办法。你可以检查一下,线程中提出了一些解决方案。我认为
request上下文
中间件可能非常适合您的用例!如果您正在构建的是某种API服务器,那么用户应该能够将其ID与API请求一起发送。或者你正在构建其他东西?事实上,它是一个API服务器,用户可以在请求中发送他们的ID,但问题是我无法访问mongoose中间件中的请求对象。哦,我明白了。据我所知,没有直接的方法可以做到这一点,但是,有解决办法。你可以检查一下,线程中提出了一些解决方案。我认为
request上下文
中间件可能非常适合您的用例。
localStorage.setItem('userId' , userData[0]._id);