Sequelizeでsqlのexistsを再現


Sequelizeとは 

sqlite3、Mysql、Postgresへ簡単にアクセスするためのライブラリである
実際に使う場合はsequelizeを使ってみたを参照

実現方法

Sequelizeでexistsを記述する場合、queryに直接記述するかexistsと同等の処理を記述する二つのやり方がある

今回はqueryに直接記述するのではなくexistsと同等の処理を記述する取っつきやすいやり方を紹介する

以下のユーザモデルがあったとしてレコードが存在するかどうか表現できればいい

const User = sequelize.define('user', {
  firstName: {
    type: Sequelize.STRING
  },
  lastName: {
    type: Sequelize.STRING
  }
})

existsはsequelizeに用意されていないのでfindOne若しくはcountを用いる

findOneの場合

Follow.findOne({
  where: { id: id }
    }).then(data => {
      if (!!data) {
        return true
      } else {
        return false
      }
    })

countの場合

User.count({ 
  where: { id: id } 
  }).then(count => {
    if (count != 0) {
      return true
    }
    return false
  });

以上です
sequelizeでexistsを記述する方法が見つからなかったので自分で書いてみました
誰かの役に立てれば幸いです
もっといい書き方が教えてもらえると嬉しいです

参考

sequelizeを使ってみた