ORM

ThinkKoa框架本身不包含ORM,用户可以自行决定使用第三方ORM。

为方便用户开发,团队开发了独立ORM ThinkORM以及轻量级的 liteQ供您选用。

ThinkORM

安装

npm i thinkorm --save

创建模型

使用thinkkoa_cli命令行工具:

think model user

命令会自动创建 app/model/user.js文件。文件代码如下:

const {model, helper} = require('thinkorm');

module.exports = class extends model {
    // 构造方法
    init(){
        // 模型名称,映射实体表 user
        this.modelName = 'user';
        // 数据表字段信息
        this.fields = {
            id: {
                type: 'integer',
                pk: true
            },
            name: {
                type: 'string',
                size: 30,
                index: true,
                defaults: ''
            }
        };
    }
}

数据库配置

创建数据库配置文件 app/config/db.js文件:

// app/config/db.js
module.exports = {
    mysql: {
        db_type: 'mysql', // 数据库类型,支持mysql,postgressql,sqlite3
        db_host: '127.0.0.1', // 服务器地址
        db_port: 3306, // 端口
        db_name: 'test', // 数据库名
        db_user: 'root', // 用户名
        db_pwd: '', // 密码
    }
}


// 读取配置
this.app.config('mysql', 'db');

实例化模型

const user = require("./user.js");
//数据源配置
let config = this.app.config('mysql', 'db');

//实例化
let userModel = new user(config);

CURD


// add
let result = await userModel.add({"name": "张三"});

// delete
result = await userModel.where({id: 1}).delete();

// update
result = await userModel.where({id: 2}).update({"name": "李四"});

// select 
result = await userModel.where({id: 3}).find(); //limit 1
result = await userModel.where({"name": {"<>": ""}}).select(); //query name is not null


更多的操作语法请查看ThinkORM文档:ThinkORM