Skip to content
thinkts

简介

think-ts-dbThinkTS框架 独立出来的一个专门处理数据库相关业务的模块。优点是不受框架约束,可以独立运行在其他任何一个工程中。


主要特性

  • 💪 ORM思想用对象的方式CRUD
  • 🔥 方法提炼封装使用更加简洁优雅
  • ⚡️ Nuxt、Next、Koa、Express等框架中都可以直接使用

目录结构

.
├── dist
├── src
│   ├── elasticsearch.ts
│   ├── index.ts
│   ├── mongodb.ts
│   ├── mysql.ts
│   ├── redis.ts
│   └── utils.ts
├── README.md
├── package-lock.json
├── package.json
└── tsconfig.json
.
├── dist
├── src
│   ├── elasticsearch.ts
│   ├── index.ts
│   ├── mongodb.ts
│   ├── mysql.ts
│   ├── redis.ts
│   └── utils.ts
├── README.md
├── package-lock.json
├── package.json
└── tsconfig.json

安装

npm install think-ts-db
npm install think-ts-db

基本使用

这里以KOA项目来做一个简单的演示,更多使用方法请看具体文档

import koa from 'koa'
import { koaBody } from 'koa-body'
import KoaRouter from 'koa-router'
import { Db, RDb } from 'think-ts-db'

const app = new koa()
const router = new KoaRouter()

app.use(koaBody({ multipart: true }))
app.use(router.routes())

const mysqlConfig = {
    host: '123.56.82.75',
    port: 3306,
    user: 'think-sso',
    password: 'dcGLEpj5JZReztBw',
    database: 'think-sso'
}

const redisConfig = {
    host: '127.0.0.1',
    port: 6379,
    db: 0
}

router.post('/login', async (ctx) => {
    const { phone, password } = ctx.request.body
    const result = await Db('user', mysqlConfig).where('phone', phone).whereAnd('password', password).findOne()
    if (result?.id) {
        const jwtToken = 'xxxxxxxxxxxx'
        RDb(redisConfig).set(jwtToken, result.id, 3000)
        ctx.body = JSON.stringify({
            code: 0,
            msg: '登录成功',
            data: jwtToken
        })
    } else {
        ctx.body = JSON.stringify({
            code: -1,
            msg: '登录失败'
        })
    }
})

app.listen(3000, () => {
    console.log('Local: http://localhost:3000')
})
import koa from 'koa'
import { koaBody } from 'koa-body'
import KoaRouter from 'koa-router'
import { Db, RDb } from 'think-ts-db'

const app = new koa()
const router = new KoaRouter()

app.use(koaBody({ multipart: true }))
app.use(router.routes())

const mysqlConfig = {
    host: '123.56.82.75',
    port: 3306,
    user: 'think-sso',
    password: 'dcGLEpj5JZReztBw',
    database: 'think-sso'
}

const redisConfig = {
    host: '127.0.0.1',
    port: 6379,
    db: 0
}

router.post('/login', async (ctx) => {
    const { phone, password } = ctx.request.body
    const result = await Db('user', mysqlConfig).where('phone', phone).whereAnd('password', password).findOne()
    if (result?.id) {
        const jwtToken = 'xxxxxxxxxxxx'
        RDb(redisConfig).set(jwtToken, result.id, 3000)
        ctx.body = JSON.stringify({
            code: 0,
            msg: '登录成功',
            data: jwtToken
        })
    } else {
        ctx.body = JSON.stringify({
            code: -1,
            msg: '登录失败'
        })
    }
})

app.listen(3000, () => {
    console.log('Local: http://localhost:3000')
})

备案号:冀ICP备20015584号-2