如果没有价值,我该如何捕捉错误?

时间:2019-02-12 08:07:15

标签: javascript sqlite

我正在尝试登录和注册功能。

当我尝试登录时,如果我输入了错误的ID,我想显示错误日志。 但这不起作用。

  

否则if(row.id ==''){            alert(“错误的ID”);          }

如果我输入了错误的ID,则该查询将无法正常工作。

如何捕获错误并显示在日志上?

function loginConfirm2() {
  var id = $('#id').val();
  var s_id = "'" + id + "'";
  var pw = $('#password').val();
  var pw = '' + pw;
  var d_id = '';
  var d_pw = '';
  if (id) {
    db = new sqlite3.Database('mydb.db');
    db.each("SELECT id, pw FROM user where id=" + s_id, function(err, row) {
      d_id = row.id;
      d_pw = row.pw;
      if ((id == row.id) && (pw == row.pw)) {
        window.location.href = "distribute_download.html?id=" + id;
      }
      else if(row.id==''){
         alert("wrong id");
       }
      else if(!(pw == row.pw)){
         alert("wrong pw");
       }
      else if(row.id==''){
         alert("wrong id");
       }
       else if(row.pw=='undefined'){
          alert("wrong pw");
        };
        if(err){
          console.log(err);
        }
    });
    db.close();
  }
}
function insultMember2() {
  var id = $('#id').val();
  var pw = $('#password').val();
  db = new sqlite3.Database('mydb.db');
  db.run("INSERT into user(id,pw) VALUES(?,?)", [id, pw], function(err, row) {});
  db.close();
  window.location.href = "finishedJoin.html";
};

db

这就是我制作数据库的方式。 另一个问题是这种改变显示几次 我猜是因为在我的数据库中有一些相同的数据?

  

否则if(!(pw == row.pw)){                警报(“ pw错误”);              }

var db = new sqlite3.Database('mydb.db');
db.serialize(function() {

  db.run("CREATE TABLE if not exists user (id STRING, pw STRING)");
  db.each("SELECT id, pw FROM user", function(err, row) {
    console.log(row.id + ": " + row.pw);
  });
  db.each("SELECT id, pw FROM user where id='qwe'", function(err, row) {
    console.log("db에 저장된 id는" + row.id);
  });
});
db.close();

1 个答案:

答案 0 :(得分:1)

在each()方法中,如果结果集为空,则永远不会调用该回调。 所以不要使用each(),而是使用get,因为“ id”将是一个

var sql = "SELECT id, pw FROM user where id=?";
        db.get( sql, [s_id], (err, row) => {
            if (err) {
            return console.error(err.message);
            } else {
            if(row){
                d_id = row.id;
                d_pw = row.pw;
                if ((id == row.id) && (pw == row.pw)) {
                    window.location.href = "distribute_download.html?id=" + id;
                }
                else if(row.id == ''){
                    alert("wrong id");
                }
                else if(!(pw == row.pw) || row.pw == 'undefined' || row.pw == undefined){
                    alert("wrong pw");
                }
            } else {
                alert("Wrong ID");
            }
}
        });

`

希望有帮助!