【问题标题】:How to do a petition to a function with mysql [duplicate]如何使用mysql对函数进行请愿[重复]
【发布时间】:2020-01-31 14:46:51
【问题描述】:

我想做一个函数来告诉我用户是否在我的数据库中。 我无法得到答案。

我试图用一个函数来做。

function userExist (user) {
    con.query("SELECT * FROM users WHERE name=?", [user], function(err, result) {
        if(err) throw err;
        if(result)
            return true
        else
        return false
    });
}

我希望是真/假,但输出未定义。

【问题讨论】:

  • 这里必须是对此的规范答案。有人欺骗它吗?

标签: javascript mysql asynchronous


【解决方案1】:

con.query 函数是异步函数(你不知道它什么时候完成),所以即使 con.query 还没有完成,userExist 函数也会完成,解决你必须返回一个promise userExist 函数然后调用来获取想要的结果是这样的:

function userExist(user) {
  return new Promise((resolve, reject) => {
    con.query('SELECT * FROM users WHERE name=?', [user], function(
      err,
      result
    ) {
      if (err) reject(false);
      if (result) {
        resolve(true)
      }
      else{
        resolve(false)
      }
    });
  });
}

当调用 userExist 时这样调用它:

userExist(user).then(function(data) {
  if (data) {
    console.log('user is exist');
  }
  else {
    console.log('user is not exist');
  }
}).catch(function(err) {
  console.log(err);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-22
    • 2015-05-16
    • 2017-03-29
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多