Express + Passport:如何在MYSQL查询中使用req.user变量

时间:2017-11-07 13:24:21

标签: mysql express passport.js

我希望有人可以提供帮助。道歉,如果它简单,我已经在网上搜索了几个小时,并没有找到正确的答案。

我正在使用Express with Passport。我有登录工作,req.user正在使用数据库中的user_id进行填充,当console.log为它时,它以这种格式出现:

req.session.passport.user: {"user":{"user_id":18} }

这很好。现在我转到另一个页面并尝试在新的MYSQL查询中使用该变量,以便从我的数据库中获取更多来自用户的信息,如下所示:

user = req.user;
db.query("SELECT * FROM users WHERE id = 'user'", function(error, results, fields) {
        if (error) throw error;
        console.log(results)
      });

在尝试将user_id变量剥离为数字等之后,我无法使其工作。任何人都可以建议一种方法将req.user变量转换为适合MYSQL查询的可用格式(只是数字所以我可以将它与正确的领域相匹配)?任何帮助将不胜感激。谢谢你的阅读!

此致 丹尼尔

1 个答案:

答案 0 :(得分:1)

您可以使用template literal,如下所示

db.query(`SELECT * FROM users WHERE id = ${req.user.user_id}`, function(error, results, fields) {
  if (error) throw error;
  console.log(results)
});

或者

"SELECT * FROM users WHERE id =" + req.user.user_id