访问ExpressJs上的当前用户-Passport

访问ExpressJs上的当前用户-Passport,express,passport.js,Express,Passport.js,我正在使用expressJs和passportjs(本地策略)创建一个后端应用程序来保护一些路由。 我需要在每个数据库查询中添加当前用户的信息,以便我们只向每个用户公开相关信息。 我知道您可以访问当前用户检查req.user的信息,但这将涉及将用户信息(甚至请求)作为参数传递到我的所有调用堆栈中,我发现这有点不方便 是否需要获取最后一层(准备sql语句的那一层)的用户信息,而无需将其添加到参数中 谢谢。为什么不通过id获取最后一层的用户信息呢?由于您使用的是passport local,您可以通

我正在使用expressJs和passportjs(本地策略)创建一个后端应用程序来保护一些路由。 我需要在每个数据库查询中添加当前用户的信息,以便我们只向每个用户公开相关信息。 我知道您可以访问当前用户检查req.user的信息,但这将涉及将用户信息(甚至请求)作为参数传递到我的所有调用堆栈中,我发现这有点不方便

是否需要获取最后一层(准备sql语句的那一层)的用户信息,而无需将其添加到参数中


谢谢。

为什么不通过
id
获取最后一层的用户信息呢?由于您使用的是passport local,您可以通过访问
req.user.id
在上次数据库查询中按id查询用户。不需要任何参数

 router.post('/your/route', function(req, res) {
   User.findOne({
     where: {id: req.user.id}
   }).then(function(user) {
   // do something
    });
 //send response
 });

您可以通过自定义数据将用户对象作为第二个参数传递到passport的
done
函数,如下所示:

done(null, {id: 1, name: 'John'});

req.user
将返回
{id:1,name:'John'}

谢谢您的回答。这样,我仍然需要传入userId来查询数据库。我试图避免在所有方法中添加额外的参数。