javascript - 如何在 ORM(sequelize js)查询上添加条件检查?

标签 javascript express sequelize.js

假设我有一个表 gameData {gameId, currentBoardLayout} ,一个像 www.chess.com/ asd123 这样的获取请求被发送到服务器,其中 asd123 是我的游戏 ID,我需要捕捉这个 ID(asd123是我的gameId)并在我的表(gameData)中检查它并实现以下逻辑:

srv.get('/:id', (req, res) => {
    if ( gameData.findAll({where: {gameId: req.params.id} )
            { // Game room found
                return currentBoardLayout
            }
    else
            { error : Invalid game id }
    })


我怎样才能做到这一点?
谢谢

最佳答案

您可以使用 Sequelize 的 findById 方法。

srv.get('/:id', (req, res) => {
  gameData.findById(req.params.id)
    .then(result => {
      res.send(result)
    })
    .catch(() => {
      res.send({
        error: 'Could not find ID'
      })
    })
})

这是正在发生的事情:
  • Sequelize 的 findById 方法将返回一个 promise 。如果成功,您将从数据库中取回您的项目。如果找不到该项目,则会触发 catch 方法。
  • res.send 是 Express 将数据发送回客户端的方式。

  • 值得查看 Sequelize 文档:
  • Using models
  • Querying
  • 关于javascript - 如何在 ORM(sequelize js)查询上添加条件检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52793665/

    相关文章:

    typescript - 如何为 Sequelize 返回实例删除空或未定义的属性

    sequelize.js - 如何更新不包括字段的 Sequelize 模型

    javascript - 无法正确地将图像副本从一个 Canvas 复制到另一 Canvas

    javascript - react Gatsby : implemented sequential fade-in animation for gallery but it doesn't work right after being deployed

    javascript - 使用 Reduce 将数组转换为对象

    javascript - 使用 app.post 和 req.body 获取 undefined

    sql - 将sequelize查询转换为knex

    javascript - Moment JS - 增加两天

    node.js - 如何将路由添加到我的 React 应用程序服务器?

    Node.js 使用 Redis 存储保存 session