【问题标题】:req.params undefined when trying to find something in postgresql尝试在 postgresql 中查找内容时 req.params 未定义
【发布时间】:2022-02-23 20:09:59
【问题描述】:

嘿,我正在重置密码路由 (EXPRESSJS),但我遇到了问题。我的路线如下所示:/reset-password/:resetToken

我是这样理解的:const token = req.params.resetToken

当我 console.log 该变量时,它会记录它而没有任何错误,但是当我尝试检查它是否在 db 中时,它会返回 undefined

一些代码:

AuthRouter.put("/reset-password/:resetToken", async (req, res) => {
  const token = req.params.resetToken

 try {

    console.log(token);
    const getResetToken = await pool.query("SELECT * FROM users WHERE user_password_reset_token = $1", [
      token
    ])  

【问题讨论】:

  • 硬编码一个已知的令牌是否有效?
  • 试试$1::text
  • @Barmar 当我创建一个变量并将它放在它在 db 中找到它的字符串中
  • @cmgchess 不工作
  • @Luc 不要把它放在字符串中。使用相同的代码,但只使用const token = "XXX",其中XXX 是令牌。

标签: javascript node.js express


【解决方案1】:

尝试在查询中添加 `` 而不是 "

`SELECT * FROM users WHERE user_password_reset_token = $1`

【讨论】:

    【解决方案2】:

    你可以试试这个,它适用于动态值:

    const getResetToken = await pool.query(
        `SELECT * FROM users WHERE user_password_reset_token = $1`,
        [token]
    )
    

    【讨论】:

      猜你喜欢
      • 2015-09-09
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 1970-01-01
      • 2022-12-06
      • 1970-01-01
      • 2021-02-14
      • 2014-10-24
      相关资源
      最近更新 更多