如何从Mysql连接的响应中获取数据

时间:2018-06-03 09:03:35

标签: javascript mysql node.js

我想通过名称xyz@abc.com知道我的数据库中是否存在任何带有emailid的用户。

function isDuplicateUser(emailId)
{
  var sql='SELECT count(*) FROM UserDetails WHERE emailId ="'+emailId+'";';
  var con = mysql.createConnection({
    host:"localhost",
    user: "root",
    password: "32577488",
    database:"mydb"
  });
  con.connect(function(err) {
    con.query(sql, function (err, result) {
      if (err) throw err;
      console.log("Inside Duplicate check");
      console.log(result[0]);
      console.log(result.count);
      console.log(result[0].emailId);
      console.log(result[0].count);
      console.log("1 record inserted");
    });
  });
}

但是在所有的console.log语句中我都没有定义!我想过使用count,这样如果有超过0的用户就有了这个用户ID!请帮我 !我有另一个疑问也可以在每个功能中获得连接!喜欢注册有一个

    function signup(email,password,name)
    {
       var sql =''....;
       //getting connection once

    }
function signin(emailid,password)
{
    //getting connection here 
    return success;
}

似乎代码被多次复制了!

1 个答案:

答案 0 :(得分:0)

请尝试使用此sql语句并告诉我结果:

// replace your var sql with this one
const sql = `SELECT count(*) FROM UserDetails WHERE emailId = '${emailId}'`;

另一方面,关于如何管理每个函数中的连接,我的建议是在你的应用程序中创建一个连接池,并从你需要的每个函数的池中获取连接(你需要注意释放连接当你完成使它们可用于新的传入请求时:)

// connection first time when node starts
const options = {
  connectionLimit: 10,
  host: HOST,
  user: USER,
  password: PASSWORD,
  database: DATABASE,
  port: 3306,
  timezone: 'Z',
  // debug: true,
  multipleStatements: true,
  // ...azureCertificate && sslOptions,
};

const pool = mysql.createPool(options);

// on each function, get a connection from the pool using this function
getConnection() {
  return new Promise((resolve, reject) => {
    if (pool === null) {
      return reject(new Error(`MySQL connection didn't established. You must connect first.`));
    }

    pool.getConnection((err, connection) => {
      if (err) {
        if (connection) {
          connection.release();
        }

        return reject(err);
      }

      return resolve(connection);
    });
  });
}

希望这有帮助。

这个例子是使用npm包 mysql https://www.npmjs.com/package/mysql