如何使用 bookshelf-pagemaker 添加简单的Where子句

2023-12-02

使用书架页面制作器NodeJS 模块:

  • https://www.npmjs.com/package/bookshelf-pagemaker
  • https://github.com/bhoriuchi/bookshelf-pagemaker

..我能够获得基本的分页工作,它从表中选择所有行。但我不知道如何向查询添加 WHERE 子句。

问题:

有人可以分享一个使用 bookshelf-pagemaker 的小例子吗 带有搜索条件 - 例如从用户中选择 *,其中 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 语句将添加一个 and 到过滤器 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
    });
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 bookshelf-pagemaker 添加简单的Where子句 的相关文章

随机推荐

  • 在 PyCharm 中运行结束时启动脚本

    对于特定情况 我需要所有 PyCharm 项目在每次运行结束时运行给定的脚本 在运行 调试配置中 有一个选项可以在启动之前运行脚本 运行结束后是否有类似的选项来运行脚本 如果它不存在 正如我怀疑的那样 我是否可以使用另一个技巧 也许使用 z
  • 忽略与财产相关的警告

    我想忽略这些警告这些警告在我使用时出现有效架构 arm64 armv7 armv7s 这些类型的警告出现在许多标题中 我想忽略这些警告 就像 clang 处理已弃用的警告一样 pragma clang diagnostic push pra
  • 在 SQL 中检索列信息(复合键)

    我有一个大型 SQL 数据库 我需要验证表和列的结构 而不 是数据本身 因此 我需要生成所有表的列表 然后为每个表生成其所有列 然后为每列生成其数据类型 长度 精度 序号位置以及它是否是该表主键的一部分 我可以通过以下查询获得我需要的大部分
  • 将图像保存到文档目录并检索电子邮件附件

    我无法弄清楚NSBundle DocumentDirectory数据 我有一张相机图片 图像视图 我正在保存到NSDocumentDirectoy然后想要检索它以附加到电子邮件中 这里是保存代码 IBAction saveImage NSA
  • C++ 将方法指针作为模板参数传递

    我有一个这样的调用者函数 template
  • 如何在 CentOS 6 上安装 ffmpeg

    我已经尝试安装 ffmpeg 2 天了 但没有成功 我在 youtube 上尝试了无数视频 在 google 上一步步尝试 但没有成功 任何帮助都会很棒 我有一台 Centos 6 服务器 是的 我在 mac 终端中使用 root ssh
  • PHP 格式日期

    如何强制输出日期格式 2012年12月12日 2012年1月10日 2012年1月5日 代替 12 12 2012 01 10 2012 01 05 2012 我的代码如下 adatefrom date create POST datefr
  • apache 日志中的 wkhtmltopdf 错误

    exec wkhtmltopdf test html output pdf 在 php 命令行中它可以工作 但是如果我尝试从 apache 调用它 它不会创建 pdf 文件并且日志显示 tail f var log apache2 erro
  • 标记上的语法错误、lambda 表达式的构造错误

    我在用于线程的以下代码中遇到了语法问题 btnNewButton addActionListener new ActionListener public void actionPerformed ActionEvent e new Thre
  • 友谊和继承有什么区别?

    假设有两个类A和B class A class B 下面的两个例子在哪些方面有所不同 示例1 class C public A public B 示例2 class C private friend class A friend class
  • 如何使用 pandas.Series.str.contains 搜索字符加上

    如何在 pandas 数据框列中使用 pandas Series str contains 搜索字符 我试过 df noplus df df column1 str contains case False 它给了我一个错误 File hom
  • 如何使用 python 为 ds:DigestValue、ds:SignatureValue 和 ds:X509Certificate 生成 Base64 哈希值?

    我需要生成并签署 XML 我使用的是 Windows 10 我有 PFX 格式的证书 也称为 P12 我已成功从该文件中提取密钥和证书 以便对 XML 进行签名 但现在我需要知道如何签署该 XML 更准确地说 如何生成此 XMl 元素的内容
  • JBoss AS 7:如何独立部署EJB和依赖WAR?

    我有一个带有一个 EJB 的应用程序 mwf ejb jar 和战争 mwf web war 如果我将它们打包在同一个 EAR 中 则一切正常 有没有办法先部署EJB 然后部署WAR 如果我尝试一下 我的 EJB JAR 部署得很好 但是当
  • 根据第一个和最后一个逗号分割字符串

    我想在第一个和最后一个逗号上分割字符串 每个字符串至少有两个 逗号 以下是示例数据集和所需的结果 这里有一个类似的问题询问如何在第一个逗号上拆分 在字符串中的第一个逗号处拆分 这里我问如何在前两个冒号上分割字符串 在前两个冒号上分割字符串
  • 错误 您的帐户已具有有效的 iOS 分发证书

    我见过其他存在此类错误的问题 但没有一个问题可以帮助我解决我的问题 我有我的个人苹果开发者帐户和我工作的公司的一个帐户 当我尝试为我的公司提交应用程序以对其进行 Beta 测试时 出现错误 您的帐户已经拥有有效的 iOS 分发证书 我尝试再
  • java手机通用签名工具

    谁能告诉我几乎所有java移动供应商 如三星 索尼 诺基亚 Micromax Moto等 使用的常用签名工具是什么 AFAIK Thawte Verisign and Java验证支持大多数设备 但一切都是成本 有一次我为此与 Thawte
  • Python + Django 页面重定向

    如何完成简单的重定向 例如cflocation在 ColdFusion 中 或header location http 对于 PHP 在 Django 中 这很简单 from django http import HttpResponseR
  • 寻找最佳报价组合的算法,该组合可以为给定的一组商品提供最大折扣

    我有带有 ID 的物品 1001 1002 1003 1004 1005 1006 There respective quantities are 2 5 1 1 5 2 现在我有如下数据 每行都有一个 OfferId offerId It
  • PHP 中如何将日期转换为时间戳?

    我如何从例如获取时间戳22 09 2008 此方法适用于bothWindows 和 Unixand is 时区意识到 如果你和你一起工作 这可能就是你想要的dates 如果您不关心时区 或者想使用服务器使用的时区 d DateTime cr
  • 如何使用 bookshelf-pagemaker 添加简单的Where子句

    使用书架页面制作器NodeJS 模块 https www npmjs com package bookshelf pagemaker https github com bhoriuchi bookshelf pagemaker 我能够获得基