我有一个函数可以获取具有偏移和限制的产品。
function f(offset,limit, callback) {
models.Product.findAll({
offset: offset,limit: limit
}).then(function (products) {
...
}).catch(function (error) {
callback(error, null);
});
}
服务器通过客户端的POST查询获得偏移和限制。 我应该自己检查限制和偏移值还是sequelize会这样做而不是我?它会捕捉到“捕获”中的所有错误吗?方法
例如,服务器期望值 - 偏移量:0,限制:100, 但得到了 - 抵消:-87,限制:' rchk'或某种sql注入。
我应该在传递之前将此数据传递给findAll或自己检查输入数据吗?
答案 0 :(得分:1)
Sequelize将为您逃脱(以防止注入攻击)限制和偏移值。但是,它不会为您验证它,所以如果您不想在某些傻瓜通过SequelizeDatabaseError
时抛出'limit: monkeys'
,那么您需要自己进行筛选。
如果您正在运行原始查询(使用Sequelize#query
,那么您希望使用占位符,因为t.niese建议)