在技术的海洋中,我们总是在寻找那片未被发现的宝藏。今天,我想和大家分享一个我最近发现的非常好用的数据库工具,在Nuxt3中操作MySql和Redis非常方便,这是他的使用文档 db.think-ts.cn 先贴出来。
假如我们有一个登录接口,可以创建 server/api/login.post.ts
文件
import { Db, RDb } from 'think-ts-db'
const mysqlConfig = {
host: '127.0.0.1',
port: 3306,
user: '',
password: '',
database: ''
}
const redisConfig = {
host: '127.0.0.1',
port: 6379,
db: 0
}
export default defineEventHandler(async (event) => {
const { phone, password } = await readBody(event)
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)
return {
code: 0,
msg: '登录成功',
data: jwtToken
}
} else {
return {
code: -1,
msg: '登录失败'
}
}
})
如果想实现一个分页查询的接口也同样非常容易,创建 server/api/news.get.ts
文件
import { Db } from 'think-ts-db'
const mysqlConfig = {
host: '127.0.0.1',
port: 3306,
user: '',
password: '',
database: ''
}
export default defineEventHandler(async (event) => {
const { title } = await readBody(event)
const m = Db('news', mysqlConfig)
if (phone) {
m.whereLike('title', `%${title}%`)
}
const list = await m.page(1, 10).select()
const total = await m.count()
return {
total,
list
}
})
看,代码是不是非常的简洁优雅,想要了解更多用法,赶快去看官方文档吧!