【问题标题】:Sequelize time comparison failed after database replacement to postgreSQL将数据库替换为 postgreSQL 后,Sequelize 时间比较失败
【发布时间】:2015-03-05 15:30:53
【问题描述】:

我已经替换了 MySQL 数据库而不是 PostgreSQL,现在我在尝试通过以下方式查找用户时遇到问题:

.find({ where: { resetPasswordToken: req.params.token, resetPasswordExpires: { gt: Date.now() } } })
.then(function(user){
  if (!user) {
    req.flash('errors', { msg: 'Password reset token is invalid or has expired.' });
    return res.redirect('/forgot');
  }
 res.render('account/reset', {
    title: 'Password Reset'
  });
})
.catch(function(err){
  return next(err);
});

这段代码以前可以工作,现在我有消息:

SequelizeDatabaseError: operator does not exist: timestamp with time zone > bigint

数据库中的日期存储为:2015-03-05 08:09:40.152+01

我将非常感激,因为我不知道我的问题是由数据库迁移还是我的代码中的某些类型引起的。非常感谢!

【问题讨论】:

    标签: javascript node.js postgresql orm sequelize.js


    【解决方案1】:

    将 Date.now() 更改为 new Date(),看起来就像在将时间存储为整数之前一样。

    { gt: new Date() } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多