Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用bookshelf pagemaker添加简单Where子句_Node.js_Bookshelf.js_Bookshelf Pagemaker - Fatal编程技术网

Node.js 如何使用bookshelf pagemaker添加简单Where子句

Node.js 如何使用bookshelf pagemaker添加简单Where子句,node.js,bookshelf.js,bookshelf-pagemaker,Node.js,Bookshelf.js,Bookshelf Pagemaker,使用书架pagemakerNodeJS模块: 。。我能够在从表中选择所有行的情况下使用基本分页。但是我没有看到如何在查询中添加WHERE子句 问题: 有人能分享一个使用书架寻呼机的小例子吗 使用搜索条件-例如,从id>10的用户中选择* 我在新发布的版本0.1.3中添加了对此的支持。现在可以向传递给paginate函数的args对象提供where语句。您提供的sql语句将与and一起添加到筛选器sql中,因此您仍然可以使用搜索功能 您的args对象看起来像 var args={ 参数:

使用书架pagemakerNodeJS模块:

。。我能够在从表中选择所有行的情况下使用基本分页。但是我没有看到如何在查询中添加WHERE子句

问题:

有人能分享一个使用书架寻呼机的小例子吗 使用搜索条件-例如,从id>10的用户中选择*


我在新发布的版本0.1.3中添加了对此的支持。现在可以向传递给paginate函数的args对象提供where语句。您提供的sql语句将与and一起添加到筛选器sql中,因此您仍然可以使用搜索功能

您的args对象看起来像

var args={
参数:{
开始:偏移,
页码:pageNum,
长度:页面大小
},
型号:UserDAO,
其中:‘(id>10且id<100)’

};当前版本不支持此操作。我将向args对象添加一个“where”参数,以便您可以指定该参数,并在我将其发布到npm时使用更新的版本进行回复。我没有想到这个用例,现在我对bookshelf有了更好的理解,可能需要重新编写模块。您可能还想关注我的dreamcatcher项目,因为我将在那里添加一个分页选项,该模块中的方法允许您执行更多书架/knex类型的函数。此外,args对象的params字段应该是web服务调用中的request parameters对象。我只使用restify测试了代码,所以它应该类似于模块中的req.params。非常感谢您查看我的问题并更新模块以支持WHERE子句。谢谢你这么快就处理好了。我希望您不介意我对您的帖子进行了一些编辑,以包含一些附加代码,用于在进行过滤查询时设置正确数量的页面链接。顺致敬意,
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);
    });
}