Sequelize在何处声明与date

我使用sequelize作为我的后端ORM。 现在我想在date上做一些操作。

更多Spenceficly我想获取所有的数据,从现在起7天前。

问题是该文档不指定您可以在Datatypes.DATE执行哪些操作

任何人都可以指向正确的方向吗?

就像Molda说的,你可以使用$gt$lt$gte或者$lte作为date:

 model.findAll({ where: { start_datetime: { $gte: moment().subtract(7, 'days').toDate() } } }) 

我不得不从sequelize中导入运算符符号并像这样使用。

 const { Op } = require('sequelize') model.findAll({ where: { start_datetime: { [Op.gte]: moment().subtract(7, 'days').toDate() } } }) 

根据文档,出于安全原因,这被认为是最佳实践。

有关更多信息,请参阅http://docs.sequelizejs.com/manual/tutorial/querying.html

使用没有任何别名的Sequelize可以提高安全性。 有些框架会自动将用户inputparsing为js对象,如果您不能清理input,则可能会将具有string运算符的Object注入Sequelize。

(……)

为了更好的安全性,强烈build议使用Sequelize.Op,而不要依赖任何string别名。 您可以通过设置operatorsAliases选项来限制您的应用程序所需的别名,请记住清理用户input,尤其是当您直接将它们传递给Sequelize方法时。