@fxjs/knex

NPM version  NPM download  NPM download monthly

knex.js 是 node.js 生态中热门的 sql generator 库. 可以通过语义化的 API 生成 sql 语句.

@fxjs/knex 是对 knex.js 的移植. 基于 fibjs 的沙盒机制, 我们将 knex.js 2.3.0 的能力引入到了 fibjs 中.

Sample

var FibKnex  = require("@fxjs/knex");

function getFibKnexInstance (driverType) {
    switch (driverType) {
        default:
            break
        case 'mysql':
            driverType = 'mysql2'
            break
        case 'psql':
            driverType = 'pg'
            break
    }

    return FibKnex({
        ...opts,
        client: driverType,
        // useNullAsDefault: true
    })
}

var sql = getFibKnexInstance('mysql').schema.createTable('users', function (table) {
    table.increments();
    table.string('name');
    table.timestamps();
}).toString()
// => CREATE TABLE `users` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` VARCHAR(255), `created_at` DATETIME, `updated_at` DATETIME)

更多 knex 的使用可参考测试用例