Meet npm Pro: unlimited public & private packages + package-based permissions.Learn more »

thinkorm

4.4.0 • Public • Published

介绍

npm version Build Status Dependency Status

  • thinkorm@4.0 Use Typescript's decorator!!

A flexible, lightweight and powerful Object-Relational Mapper for Node.js.

ThinkORM是一个可扩展轻量级的功能丰富的ORM,运行在Node.js环境,已经支持Typescript。

ThinkORM试图用一种抽象的DSL语言,尽量保持各种数据库书写语法一致,用户专注于数据操作逻辑而非具体的数据存储类型,达到快速开发和移植的目的。

特性

  1. 基于Knex.js实现,支持 Mysql/MariaDB, PostgresSql, SQLite3, Oracle, MSSQL.

  2. 抽象的面向对象式SQL操作语言,保持各种数据库书写语法一致,方便开发和项目迁移

  3. 支持schema定义数据结构,支持严格的类型检查;支持数据结构迁移到数据库,通过migrate方法调用

  4. 支持hasone,hasmany,manytomany关联查询

  5. 支持left,right,inner join查询,支持count,sum,group查询

  6. 支持连接池配置.支持数据链接检测以及自动重联,数据库服务的宕机修复后无需重启应用

  7. 支持事务操作,包括同模型、跨模型、并行事务(Mysql/MariaDB, PostgresSql)

  8. 支持数据自动验证以及自定义规则验证,且规则可扩展

  9. 支持前置、后置逻辑处理

安装

npm install thinkorm --save

使用

used thinkorm@4.x

//class User.js
const {BaseModel, helper, Entity, PrimaryColumn, Column, IsNotEmpty } = require('thinkorm');
 
@Entity()
class User extends BaseModel {
    @PrimaryColumn()
    id: number;
 
    @IsNotEmpty({ message: "姓名不能为空" })
    @Column(0, '', true)
    name: string;
}
 
//CURD
const userModel = new User(config);
// 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
 

文档

3.x

4.x

贡献者

  • richenlin
  • richerdlee

协议

MIT

Keywords

Install

npm i thinkorm

DownloadsWeekly Downloads

114

Version

4.4.0

License

MIT

Unpacked Size

96 kB

Total Files

23

Last publish

Collaborators

  • avatar