objection-express-crud
    TypeScript icon, indicating that this package has built-in type declarations

    2.2.1 • Public • Published

    objection-express-crud

    version npm

    Installation

    npm i --save objection-express-crud

    Example

    import bodyParser from 'body-parser';
    import express from 'express';
    import Knex from 'knex';
     
    import { Model } from 'objection';
    import { buildTable, Column, Table } from 'objection-annotations';
    import objectionCrud from 'objection-express-crud';
     
    @Table('todo_list')
    class Todo extends Model {
        @Column('increments')
        id: number;
     
        @Column('string', { required: true, schema: { maxLength: 20 } })
        content: string;
     
        @Column('integer', { required: true })
        priority: number;
    }
     
    (async () => {
        await buildTable(Knex({
            client: 'sqlite3',
            connection: {
                filename: process.env['DB_FILE'],
            },
            useNullAsDefault: true,
        }), Todo);
     
        const app = express();
        app.use(bodyParser.json());
     
        // Register CRUD route
        app.use('/todo', objectionCrud(Todo, {
            async resultWrap(result, req, { routeName, getTotalPage, actualPage, getCount }) {
                if (routeName === 'list') {
                    return {
                        items: result, paging: {
                            current: actualPage,
                            totalItem: await getCount(),
                            total: await getTotalPage(),
                        },
                    };
                }
     
                return result;
            },
        }));
     
        app.listen(8080);
    })();

    Options

    • insertGraphOptions
    • routes: Register express routing for objection, default option is true
    • preRoutes: Register handler(s) before objection handler
    • postRoutes: Register handler(s) after objection handler
    • listFn: Function to modify query builder for listing route
    • detailFn: Function to modify query builder for detail route
    • resultWrap: Wrap function of query result
    • handleResponse
    • handleForbidden
    • handleNotFound
    • handleError
    • canList
    • canDetail
    • canInsert
    • canUpdate
    • canDelete

    Install

    npm i objection-express-crud

    DownloadsWeekly Downloads

    11

    Version

    2.2.1

    License

    MIT

    Unpacked Size

    38 kB

    Total Files

    17

    Last publish

    Collaborators

    • dkhang97