【问题标题】:unable to get correct error with Node-PG pool.query无法使用 Node-PG pool.query 获得正确的错误
【发布时间】:2021-03-11 01:57:38
【问题描述】:

我是一个尝试使用 PRN 堆栈制作社交媒体网站的初学者,但在使用 Postman 进行调试时,我的删除请求遇到了问题。 基本上,我以用户 X 的身份登录,创建了一个帖子,注销,然后以用户 Y 的身份登录并尝试删除该帖子。会发生什么我得到了回复Post deleted with ID: ${post_id} 但是,当我去检查数据库时,帖子仍然存在。 尽管这是我在功能上希望它做的事情,但我希望抛出正确的错误。我错过了什么?

  exports.deletePost = async (req, res) => {
 try {
  const userId = req.users
  const post_id = parseInt(req.params.id)
  await pool.query('DELETE FROM posts WHERE post_id = $1 AND user_id = $2', [post_id, userId])
  res.status(200).json(`Post deleted with ID: ${post_id}`)
 } catch (error) {
  console.log("Failed to delete post:" + error)
  res.sendStatus(500)
 }}

我正在从身份验证器中间件接收登录的用户 ID:

module.exports = async (req, res, next) => {
 try {
  const jwtToken = req.header('token')
  if (!jwtToken) {
   return res.status(403).json('You are not authorized')
  }
  const payload = jwt.verify(jwtToken, process.env.jwtSecret)
  req.users = payload.users
  next();
 } catch (error) {
  console.error(error.message)
  return res.status(403).json('You are not authorized')
 }
}

在我看来,我的 PG 请求中的逻辑 AND 运算符有些问题……非常感谢任何见解!

【问题讨论】:

    标签: postgresql sql-delete node-pg-pool


    【解决方案1】:

    我会在这里回答我自己的问题:

    exports.deletePost = async (req, res) => {
     try {
      const userId = req.users
      console.log('logged in user', userId);
      const post_id = parseInt(req.params.id)
      const resp = await pool.query('DELETE FROM posts WHERE post_id = $1 AND user_id = $2', [post_id, userId])
      if (resp.rowCount === 0) {
       throw new Error('Failed to delete post')
      }
      res.status(200).json(`Post deleted with ID: ${post_id}`)
     } catch (error) {
      console.error(error.message)
      res.status(500).send(error.message)
     }
    

    我输入了一个 if 语句来检查 resp 的 rowCount 并在适当的时候抛出一个错误......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-25
      • 2011-07-12
      • 1970-01-01
      • 2020-04-30
      • 2020-09-06
      相关资源
      最近更新 更多