Node.js 使用变量时的续集问题

Node.js 使用变量时的续集问题,node.js,sequelize.js,Node.js,Sequelize.js,例如,在使用变量时,我在sequelize上遇到了错误 let article = await Article.findAll({ offset:0, limit:5 }); 工作正常,但如果我: const {pageNumber,limit} = req.params; const offset = ((pageNumber-1) * limit); let article = await Article.findAll

例如,在使用变量时,我在sequelize上遇到了错误

let article = await Article.findAll({
        offset:0,
        limit:5
      });
工作正常,但如果我:

const {pageNumber,limit} = req.params;
    const offset = ((pageNumber-1) * limit);
    
    let article = await Article.findAll({
        offset,
        limit
      });
控制台记录偏移和限制值显示通过路由给出的值。但我在控制台上发现了这个错误

 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''5'' at line 1

提前谢谢你

你已经试过了吗?javascript版本可能不允许您这样做

let article = await Article.findAll({
    offset: offset,
    limit: limit
  });
如果这不起作用,您可以发布出现在控制台中的错误和生成的sql,我可以为您提供更多帮助

编辑:


尝试在之前添加+以获得数值限制。limit接收一个整数作为值:
+req.params.limit
parseInt(req.params.limit)

在设置值之前,只需将limit解析为整数,或者在sequelize中使用它之前执行它,例如


limit=parseInt(limit,10)

我做了,但它没有工作…如何生成sql你能告诉我吗?在sequelize的选项中添加正在执行的日志参数(默认):选择
id
post
createdAt
updatedAt
userId
FROM
articles
作为
article
限制0,'5';类似这样的
logging:console.log
在sequelize()的实例中,我不确定,但是尝试在前面添加+以获得数值+限制。limit接收一个整数作为值。它工作了,谢谢。。。所以PARM中的值总是字符串??如果我的答案有帮助的话,请向上投票,是的,这就是我注意到的。即使在指定了整数值之后,查询参数中的字符串也被证明是字符串。satwinder我无法对你的答案进行投票,我没有太多的信誉点要做,不用担心。祝你今天愉快:)