web-dev-qa-db-ja.com

node.js mysqlクエリで、一致するものが見つからないかどうかを確認します

Mysql(node.js)で一致するものが見つからないかどうかを確認するにはどうすればよいですか?

mysql.query("select * from table1 where name = 'abcd'", function(error, result, field) {
    if(error) {
        exist(error); //No error
    } else if(result) {
        console.log(result);  //displays '[]'
        exist(null, result);
    } else {
        exist(null, null); //It is never execute
    }
});
function exist(error, result) {
    if(result)
        console.log("Test:"+result); //Executed and displays 'Test:'
}

データベースにname = 'abcd'が含まれていません。では、クエリが一致しないかどうかを確認するにはどうすればよいですか?

12
Rejaul

クエリの結果として空の配列([])が返されます。これは、データベースにname = 'abcd'の行が含まれていないためです。 。

あなたがするとき:

if (result) {
  if (result)
    console.log("Test:" + result);

、あなたはifを入力します。JavaScriptはtrue[]として評価するためです。 この記事はこちら を見てください。これは、JavaScriptがtruefalseの値を評価する方法を説明しています。

結果の配列が空かどうかを確認するより良い方法は、次のようにすることです:

if (result.length > 0) {
  if (result)
    console.log("Test:" + result);
16