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方法时。