重生之我要当前端大王--node篇--04ORM框架之Knex

重生之我要当前端大王–node篇

第一篇章 后端服务篇–nodeJS启动!

04 ORM框架交互数据库

前言

阅读本章,可学习使用orm框架进行数据库交互,我这里选用的orm框架是 KnexJs,Knex.js 是一个基于 Promise 的 SQL 库。

一、orm框架是什么?为什么要用orm框架

ORM(Object-Relational Mapping,对象关系映射)框架是一种在编程中用于将对象模型映射到关系型数据库模型的技术。ORM 允许开发者使用面向对象的方式来操作数据库——创建、查询、更新和删除数据,而不需要编写复杂的 SQL 语句

二、ORM框架之Knex

1.如何使用Knex

前置条件安装依赖库 :pnpm i knex mysql2

建立一个单独js文件编写knex配置,这里我在src下的knex文件夹的index.js书写knex配置

import knex from 'knex'
const knexDb=knex({
    client:'mysql2',//选用哪种数据库
    connection:{
    host:"localhost",//主机
    port:3306,//端口
    user:"root",//用户名
    password:"831153",//密码
    database:"ws49"//数据库库名
    }
})
export default knexDb//导出连接实例

2.使用knex简单执行查询操作

 router.get('/list',(req,res)=>{
    //通过连接实例(操作的表名).方法,查询url字段,返回一个Promise,通过链式调用
    knexDb('banner').select('url').then(data=>{
      if(data.length>=0){
        res.json({
            code:200,
            data
        })
      }else{
        throw new Error('查询失败,请重试')
      }
    })
 })

这样就简单编写一个查询接口,通过浏览器查看一下效果,使用node index.js启动服务,浏览器网址输入http://localhost:3000/banner/list
在这里插入图片描述
成功接收到后端返回数据,接口成功,这样一看操作数据库就变得通俗易懂,更加高效

3.使用knex写一个curd巩固一下

增加

 router.post("/add",(req,res)=>{
 	//调用insert,传入一个对象
    knexDb('banner').insert({
        url:req.body.url,
        desc:req.body.desc,
        alt:req.body.alt
    }).then(row=>{//返回影响行数,成功返回1,失败返回0
        if(row!=0){
            res.json({
                code:200,
                msg:'增加成功',
                data:null
            })
        }else{
            throw new Error('增加失败,请重试')
        }
    })
 })

修改

 router.post('/update',(req,res)=>{
 //调用update,使用where限定条件
    knexDb('banner').where('id','=',req.body.id).update({
        url:req.body.url,
        desc:req.body.desc,
        alt:req.body.alt,
    }).then(row=>{
        if(row!=0){//返回影响行数,成功返回1,失败返回0
            res.json({
                code:200,
                msg:'修改成功',
                data:null
            })
        }else{
            throw new Error('修改失败,请重试')
        }
    })
 })

删除操作也是分俩种,标记删除和直接删除
标记删除,通过调用update

router.delete('/del',(req,res)=>{
	//通过传入的id,修改code值,0标记删除,1正常
    knexDb('banner').where('id','=',req.body.id).update({
        code:0
    }).then(row=>{
        if(row!=0){//返回影响行数,成功返回1,失败返回0
            res.json({
                code:200,
                msg:'删除成功',
                data:null
            })
        }else{
            throw new Error('删除失败,请重试')
        }
    })
})

直接删除记录,通过调用delete

router.delete('/del',(req,res)=>{
		通过传入的id,调用delete删除对应行
    knexDb('banner').where('id','=',req.body.id).delete().then(row=>{
        if(row!=0){//返回影响行数,成功返回1,失败返回0
            res.json({
                code:200,
                msg:'删除成功',
                data:null
            })
        }else{
            throw new Error('删除失败,请重试')
        }
    })
})

总结

以上就是今天要讲的内容,简单介绍了orm框架之knex的使用,knex提供了大量能使我们快速便捷地交互数据库的方法,能更高效与数据库交互,也有更好用的orm框架如prisma、typeOrm,后续更新nestJs会讲到这个typeOrm,敬请期待,本文到此结束,你的点赞是我更新的动力。

  • 15
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值