gpt4 book ai didi

javascript - 使用 Sequelize 分页时 SQL 语法错误,但在首页上有效?

转载 作者:行者123 更新时间:2023-11-29 06:34:28 25 4
gpt4 key购买 nike

我是开发新手,遇到了很多问题,通过谷歌搜索解决了很多问题。但这似乎太愚蠢了,我什至找不到有同样问题的人...也许你可以看到错误?

我正在将 NodeJS 与 Sequelize 和 MySQL 数据库结合使用。我正在为就业市场建立一个网站,并希望对职位进行分页。我的数据库中现在有 6 个职位。

//PAGINATION Function
const paginate = ({ page, pageSize }) => {
const offset = page * pageSize;
const limit = offset + pageSize;

return {
offset,
limit
};
};


// JOBSPAGE /jobs
exports.jobs = function (req, res) {
let page = 1;
let pageSize = 2;

Job.findAll({ offset: page, limit: pageSize })
.then(jobs => {
paginate({page, pageSize}),
res.render("admin/jobs", {jobs, page, pageSize});
})
.catch(err => {
console.log(err);
res.redirect("/admin");
});
};

问题是,当req.query.page === undefined时,我的代码适用于第一页。但是,当我将网址从 /jobs 更改为 /jobs?page=1 时,我从控制台得到以下信息:

Executing (default): 
SELECT
`id`,
`title`,
`description`,
`location`,
`createdAt`,
`updatedAt`
FROM
`jobs` AS `job`
LIMIT '1', 2;
{ SequelizeDatabaseError: You have an error in your SQL syntax;
check the manual that corresponds to your MariaDB server version
for the right syntax to use near ''1', 2' at line 1

我在这里缺少什么?非常感谢您的帮助!

最佳答案

LIMIT 接收一个整数作为值,如果您检查错误,第一个值是一个字符串 '1' 我猜是直接来自 的值req.query.page 只需在数值前添加 + +req.query.page 即可。

关于javascript - 使用 Sequelize 分页时 SQL 语法错误,但在首页上有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54542892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com