首页 > 解决方案 > 无法使用 mysql 的结果读取未定义的属性

问题描述

我有这个问题,虽然我管理了“result”的值,但条件表达式“if”总是将“result”评估为“!== undefined”我也尝试使用“result!==''”但不处理它正确。在这种情况下,我没有来自 sql 查询的结果,因为“ricovero.cps”不在数据库中,所以我编写了一些代码来处理这种情况。我应该如何表现才能使“if”正常工作?

function getIdCPS(ricovero){

    console.log("getIdCPS()");
    querySQL = "SELECT id FROM codici_pronto_soccorso WHERE codice ='"+ricovero.cps+"'";
    console.log("querySQL="+querySQL);

    try{

        connection.query(querySQL, function(err, result) {

            if(err)
                console.log(err);

            if( result === undefined){

                return "";
            }else{
                console.log("result is defined");
                console.log("result=("+result+")");
                return result[0].id;
            }
        });

    }catch(e){

        console.log("try/catch error:" + e);

    }

}

标签: javascriptif-statementresultset

解决方案


只需输入此代码并监控console

const getIdCPS = (ricovero) => {
  try {
    const errorObj = { code: 400, error: 'Wrong Input' }
    if (!ricovero || !ricovero.cps) {
      throw errorObj;
    }
    const querySQL = "SELECT id FROM codici_pronto_soccorso WHERE codice ='" + ricovero.cps + "'";
    connection.query(querySQL, (err, result) => {
      if (err) {
        throw err;
      } else if (result) {
        console.log(result);
        return result;
      } else {
        throw err;
      }
    });
  } catch (err) {
    console.error(err);
    throw err;
  }
};

推荐阅读