我正在向端点发出请求,并将失败的请求以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