【问题标题】:If there is no value, how can I catch an err?如果没有价值,我怎么能发现错误?
【发布时间】:2019-02-12 08:07:15
【问题描述】:

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

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

else 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";
};

数据库

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

否则如果(!(pw == row.pw)){ alert("密码错误"); }

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();

【问题讨论】:

    标签: javascript sqlite


    【解决方案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");
                }
    }
            });
    

    `

    希望对你有帮助!!!

    【讨论】:

    • 当我输入错误的 id 时,[row.id] 出现此错误Uncaught TypeError: Cannot read property 'id' of undefined at Statement.db.get. --> in Database#get('SELECT id, pw FROM user where id=?', [ '45' ], [Function]) at loginConfirm2 at HTMLInputElement.onclick
    • 能否提供更多有关错误的信息?就像完整的堆栈跟踪一样,您能否尝试检查更新的答案。
    • 谢谢!我修好了!一切正常!除非我输入不存在的 ID。它显示了notting,没有错误..没有日志..
    • stackoverflow.com/questions/54757417/… 这是我的新问题!你能看看吗?
    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 2022-01-19
    • 2019-04-20
    • 1970-01-01
    • 2020-09-28
    • 2022-01-08
    • 2018-05-06
    • 1970-01-01
    相关资源
    最近更新 更多