无法读取未定义的属性“ lte”-Sequelize,Nodejs Mysql

时间:2019-02-07 22:59:19

标签: javascript node.js sequelize.js

我正在向端点发出请求,并将失败的请求以nextRetry格式('YYYY-MM-DD HH:mm:ss')保存在mysql数据库中。将Sequelize ORM与node和mysql一起使用

我有一个查询所有失败请求并重试请求的类

在数据库中查询失败请求时遇到问题

这是我的查询

  RetryReq.findAll({
      where: {

        reqStatus: {
          $notIn: [
            RetryStatuses.RETRY_SUCCESS,
            RetryStatuses.RETRY_MAX_FAILED
          ]
        },
        $and: [
          {
            nextRetry: { $lte: moment().format('YYYY-MM-DD HH:mm:ss') }
          }
        ]
      }
    })

基本上可以找到未成功完成的结果,max_failed雕像以及nextRetry值小于当前时间的结果

在控制台中获取此错误

TypeError: Cannot read property 'lte' of undefined
server - 9(err): at Timeout._repeat(/app/reqRetryWorker.js: 19: 34)
server - 9(err): at Timeout.wrapper[as _onTimeout](timers.js: 417: 11)
server - 9(err): at tryOnTimeout(timers.js: 224: 11)
server - 9(err): at Timer.listOnTimeout(timers.js: 198: 5)

我的模型如下

import {
  v4 as uuid
} from 'node-uuid';
import md5 from 'md5';

export default (sequelize, DataTypes) => {
  return sequelize.define('RetryReq', {
    id: {
      type: DataTypes.STRING,
      primaryKey: true,
      defaultValue: () => md5(uuid())
    },
    reqType: {
      type: DataTypes.STRING,
      field: 'req_type'
    },

    requestData: {
      type: DataTypes.TEXT,
      field: 'req_data'
    },
    log: {
      type: DataTypes.TEXT,
    },
    reqStatus: {
      type: DataTypes.STRING,
      field: 'req_status'
    },
    retries: {
      type: DataTypes.INTEGER,
      defaultValue: 0
    },
    maxRetries: {
      type: DataTypes.INTEGER,
      field: 'max_retries'
    },
    nextRetry: {
      type: DataTypes.DATE,
      field: 'next_retry'
    }



  }, {
    tableName: 'req_retries',
    freezeTableName: true,
    paranoid: false,
    underscored: true
  });
}

Sequelize版本:3.23.3节点版本-10.14.1

0 个答案:

没有答案