我是开发人员的新手,因此遇到了很多问题,而我通过谷歌搜索就解决了很多。但这似乎太愚蠢了,我什至找不到任何遇到相同问题的人……也许你能看到错误?
我正在将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
我在这里想念什么?非常感谢您的帮助!
答案 0 :(得分:1)
LIMIT
接收一个整数作为值,如果检查错误,则第一个值是字符串'1'
,我猜想是直接来自req.query.page
的值,只需加上{{1} }之前的数值+
。