如何使用 bookshelf-pagemaker 添加简单的 Where 子句
How to add simple Where-clause with bookshelf-pagemaker
使用 bookshelf-pagemaker NodeJS 模块:
.. 我能够让基本的分页工作,它从 table 中选择所有行。但我没有看到如何向查询添加 WHERE 子句。
QUESTION:
Can someone please share a small example of using bookshelf-pagemaker
with search criteria - e.g. SELECT * FROM user WHERE id > 10 ?
var Bookshelf = require('bookshelf').mysqlAuth;
var pagemaker = require('bookshelf-pagemaker')(Bookshelf);
var UserDAO = Bookshelf.Model.extend({
tableName: 'user'
});
function getRegisteredUsers(pageNum, pageSize, offset, callback) {
var args = {
params: {
start: offset,
page: pageNum,
length: pageSize
},
model: UserDAO
};
var resultObj = pagemaker.datatables.paginate(args);
resultObj.then(function (result) {
console.log('Enter: paginate(args)');
callback(result);
});
}
我在新发布的 0.1.3 版本中添加了对此的支持。您现在可以为传递给分页函数的 args 对象提供一个 where 语句。您提供的 sql 语句将被添加到过滤器 sql 中,因此您仍然可以使用搜索功能
您的 args 对象看起来像
var args = {
params: {
start: offset,
page: pageNum,
length: pageSize
},
model: UserDAO,
where: '(id > 10 AND id < 100)'
};
var resultObj = pagemaker.datatables.paginate(args);
resultObj.then(function (result) {
paginateHandler(result);
});
}
function paginateHandler (result)
{
var numPaginatedRecords = result.recordsFiltered;
var pagesTotal = Math.ceil(numPaginatedRecords / ITEMS_ON_PAGE);
res.render('my_paginated_view', {
data: result.data,
currentPage: <from URL or default 1>,
pagesCount: pagesTotal
});
};
使用 bookshelf-pagemaker NodeJS 模块:
.. 我能够让基本的分页工作,它从 table 中选择所有行。但我没有看到如何向查询添加 WHERE 子句。
QUESTION:
Can someone please share a small example of using bookshelf-pagemaker with search criteria - e.g. SELECT * FROM user WHERE id > 10 ?
var Bookshelf = require('bookshelf').mysqlAuth;
var pagemaker = require('bookshelf-pagemaker')(Bookshelf);
var UserDAO = Bookshelf.Model.extend({
tableName: 'user'
});
function getRegisteredUsers(pageNum, pageSize, offset, callback) {
var args = {
params: {
start: offset,
page: pageNum,
length: pageSize
},
model: UserDAO
};
var resultObj = pagemaker.datatables.paginate(args);
resultObj.then(function (result) {
console.log('Enter: paginate(args)');
callback(result);
});
}
我在新发布的 0.1.3 版本中添加了对此的支持。您现在可以为传递给分页函数的 args 对象提供一个 where 语句。您提供的 sql 语句将被添加到过滤器 sql 中,因此您仍然可以使用搜索功能
您的 args 对象看起来像
var args = {
params: {
start: offset,
page: pageNum,
length: pageSize
},
model: UserDAO,
where: '(id > 10 AND id < 100)'
};
var resultObj = pagemaker.datatables.paginate(args);
resultObj.then(function (result) {
paginateHandler(result);
});
}
function paginateHandler (result)
{
var numPaginatedRecords = result.recordsFiltered;
var pagesTotal = Math.ceil(numPaginatedRecords / ITEMS_ON_PAGE);
res.render('my_paginated_view', {
data: result.data,
currentPage: <from URL or default 1>,
pagesCount: pagesTotal
});
};