【问题标题】:undefined value if no result returned in API Mysql query如果在 API Mysql 查询中没有返回结果,则未定义的值
【发布时间】:2020-12-02 01:03:55
【问题描述】:

我每次都在使用 Node.js 开发我的第一个 API。

我有这个代码是测试代码。我正在尝试从我的系统中获取 Chemist 用户名和密码。 如果查询运行并且存在一行,则可以正常工作,但是我尝试获取控制台日志错误甚至状态结果,但我不能。

它只是死在 const 部分,因为没有行。

我尝试将声明移动到 IF 部分下,但这也会导致错误!

感谢您在正确方向上的任何一点。

 const express = require('express');
const router = express.Router();
var config = require('./../../databaseConfig');
var connection= config.connection;


router.get('/:id',(req,res) => {
    connection.query('SELECT * FROM tblChemists WHERE chemistID = ?',[req.params.id],(err,rows,fields)=>{
               
        const chemName = rows[0].chemistName;
        const chemPass = rows[0].chemistpass;
        
        if(!err)
        console.log(chemName),
        console.log(chemPass),
        res.status(201).json({
            message: 'Chemist Found',
            name: chemName,
            pass: chemPass  
            
        });
        else
        console.log(err);
    })
    
    
});





module.exports = router;

【问题讨论】:

  • 在行周围添加一些尝试捕获,或者在 const 之前执行类似 ... if(rows && Array.isArray(rows) && rows.length)...else res.status( 500).send('没有返回行')

标签: mysql node.js api undefined


【解决方案1】:

在尝试访问之前,您需要检查行是否有数据。您还应该考虑将所有内容包装在 try-catch 中


router.get('/:id', (req, res) => {
  connection.query('SELECT * FROM tblChemists WHERE chemistID = ?', [req.params.id], (err, rows, fields) => {
    if (rows && Array.isArray(rows) && rows.length) {
      const chemName = rows[0].chemistName
      const chemPass = rows[0].chemistpass
    } else {
      return res.status(500).send('no rows returned')
    }

    if (!err) {
      console.log(chemName),
      console.log(chemPass),
      res.status(201).json({
        message: 'Chemist Found',
        name: chemName,
        pass: chemPass

      })
    } else {
      console.log(err)
    }
  })
})

【讨论】:

  • 谢谢伙计,正是我所期待的,我只是对这个太菜鸟,以至于我没有到达那里。我最初认为 (!err) 会出现非数组错误,但当然不会。再次感谢!
猜你喜欢
  • 1970-01-01
  • 2015-05-09
  • 2013-10-23
  • 2014-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-22
  • 1970-01-01
相关资源
最近更新 更多