ORM

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

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

ThinkORM

安装

  1. npm i thinkorm --save

创建模型

使用thinkkoa_cli命令行工具:

  1. think model user

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

  1. const {model, helper} = require('thinkorm');
  2. module.exports = class extends model {
  3. // 构造方法
  4. init(){
  5. // 模型名称,映射实体表 user
  6. this.modelName = 'user';
  7. // 数据表字段信息
  8. this.fields = {
  9. id: {
  10. type: 'integer',
  11. pk: true
  12. },
  13. name: {
  14. type: 'string',
  15. size: 30,
  16. index: true,
  17. defaults: ''
  18. }
  19. };
  20. }
  21. }

数据库配置

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

  1. // app/config/db.js
  2. module.exports = {
  3. mysql: {
  4. db_type: 'mysql', // 数据库类型,支持mysql,postgressql,sqlite3
  5. db_host: '127.0.0.1', // 服务器地址
  6. db_port: 3306, // 端口
  7. db_name: 'test', // 数据库名
  8. db_user: 'root', // 用户名
  9. db_pwd: '', // 密码
  10. }
  11. }
  12. // 读取配置
  13. this.app.config('mysql', 'db');

实例化模型

  1. const user = require("./user.js");
  2. //数据源配置
  3. let config = this.app.config('mysql', 'db');
  4. //实例化
  5. let userModel = new user(config);

CURD

  1. // add
  2. let result = await userModel.add({"name": "张三"});
  3. // delete
  4. result = await userModel.where({id: 1}).delete();
  5. // update
  6. result = await userModel.where({id: 2}).update({"name": "李四"});
  7. // select
  8. result = await userModel.where({id: 3}).find(); //limit 1
  9. result = await userModel.where({"name": {"<>": ""}}).select(); //query name is not null

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