分页不是adonis / node.js中的函数

问题描述 投票:0回答:1

当我尝试对一个查询进行分页时,我收到一个错误。这是我的查询:

    async show({ request }){

        const { page, pageSize } = request.get();
        const filter = request.input('filter')

        const questions = await Database
                                .select('book_unit_question.*')
                                .select('book_unit.unit')
                                .select('books.id as book_id')
                                .from('book_unit_question')
                                .innerJoin('book_unit', 'book_unit.id', 'book_unit_question.book_unit_id')
                                .innerJoin('books', 'books.id', 'book_unit.book_id')
                                .where('books.id', '=', request.params.id)


        if(filter){
            if (filter.search('unit') !== -1) {
                let unit = filter.match(/(?<=unit~contains~').?(?=')/)
                questions.where('book_unit.unit', '=', unit[0])
            }
        }

        //Filtros
        if (filter) {
            if (filter.search("description") !== -1) {
                let description = filter.match(/(?<=description~contains~').*?(?=')/)
                questions.where('description', 'ilike', '%' + description[0] + '%')
            }
        }

        const question = await questions.paginate(page, pageSize)
        return question


    }

但是我得到:

{消息:“ questions.paginate不是函数”

我也尝试了questions.forPage(page,pageSize),但出现了同样的错误

node.js adonis.js
1个回答
0
投票

删除await数据库之前。像这样

const questions =Database.from('book_unit_question')
                         .select('book_unit_question.*')
                         .select('book_unit.unit')
                         .select('books.id as book_id')
                         .innerJoin('book_unit', 'book_unit.id', 'book_unit_question.book_unit_id')
                         .innerJoin('books', 'books.id', 'book_unit.book_id')
                         .where('books.id', '=', request.params.id)

     if(filter){
            if (filter.search('unit') !== -1) {
                let unit = filter.match(/(?<=unit~contains~').?(?=')/)
                questions.where('book_unit.unit', '=', unit[0])
            }
        }

        //Filtros
        if (filter) {
            if (filter.search("description") !== -1) {
                let description = filter.match(/(?<=description~contains~').*?(?=')/)
                questions.where('description', 'ilike', '%' + description[0] + '%')
            }
        }

        const question = await questions.paginate(page, pageSize)
        return question


© www.soinside.com 2019 - 2024. All rights reserved.