我是使用Sequelize和Node.js的新手,但是我的代码中的日期比较存在问题。
User.findOne({ where: {
resetToken: passwordToken,
resetTokenExpiration: { $gt: Date.now() },
id: userId
}})
当我运行它并检查日志时,查询为:
SELECT `id`, `password`, `email`, `resetToken`, `resetTokenExpiration`, `createdAt`, `updatedAt` FROM `users` AS `user` WHERE `user`.`resetToken` = 'f5779192069c3f1c3d8aae3019cf6172e83d9f07b3741a50caedf793dc3bb43c' AND `user`.`resetTokenExpiration` = '2019-11-19 06:00:00' LIMIT 1;
为什么不使用resetTokenExpiration> date,但使用resetTokenExpiration = date?
谢谢
答案 0 :(得分:1)
您需要指定正确的范围operators,在这种情况下为[Op.gt]
。
User.findOne({ where: {
resetToken: passwordToken,
resetTokenExpiration: { [Op.gt]: Date.now() }
id: userId
}})