node学习—Sequelize模型的增删改

本文详细介绍了使用Sequelize ORM进行数据库操作的增删改方法。包括通过`build`和`create`创建记录,`findByPk`和`destroy`删除记录,以及`save`和`update`更新记录。同时强调了服务层验证的重要性,并提供了多个服务层函数示例。
摘要由CSDN通过智能技术生成

一、Sequelize模型的增删改

在这里插入图片描述
我们先了解一下三层架构,其中ORM就是操作数据库通信的,我们目前学习的Sequelize就是。

注:本文接上一章Sequelize模型定义与同步

1、增加

require("./models/sync");
const Admin = require("./models/admin");
const ins = Admin.build({
  loginId: 'jimo',
  loginPwd: '23456'
});//同步方法,构建一个模型实例
ins.loginId='llll'
ins.save().then(()=>{
  console.log("新增完毕");
})

build指令不会立即执行,期间可以更改数据值,直到save异步执行时,才会写入到数据库。
在这里插入图片描述
另一种增添的方法

require("./models/sync");
//增加
const Admin = require("./models/admin");

Admin.create({
  loginId: 'admin',
  loginPwd: '123456'
}).then((ins)=>{
  console.log(ins.loginId);
})

此时create会异步执行,我们只需等待执行完毕。
通过添加我们了解到增删改并不难,但是一个完整的系统,最重要的验证,一定在服务器端。
1、客户端(浏览器、app、pad、小程序)验证,用户验证
2、服务器端逻辑验证(业务逻辑层的验证),为了业务逻辑的完整性、安全性
3、数据库验证:为了保证数据完整性

创建服务层,只要接口不变,业务逻辑的修改不会造成其它影响

//services/adminService
// 管理员初始化
// 判断数据库中是否有管理员,如果没有,自动添加一个默认管理员
const admin = require("../models/admin");
exports.addAdmin = async function (adminObj) {
  // 应该判断adminObj的各种属性是否合理,以及账号是否已存在
  const ins = await admin.create(adminObj);
  return ins.toJSON();
};
//index
const adminSer = require("./services/adminService");
adminSer.addAdmin({
  loginId: "1111",
  loginPwd: "2222222",
});

2、删除

  1. 方式1
//services/adminService
const admin = require("../models/admin");
exports.deleteAdmin = async function (adminId) {
    // 1.得到实例
    const ins = await admin.findByPk(adminId);//查找
    //   console.log(ins);
    // 2.删除实例
    if (ins) {
      await ins.destroy();
    }
};
  1. 方式2
//services/adminService
exports.deleteAdmin = async function (adminId) {
  const result = await Admin.destroy({
    where: {
      id: adminId,
    },
  });
  return result;
};
//index
const adminSer = require("./services/adminService");
adminSer.deleteAdmin(2);

3、修改

  1. 方式1
//services/adminService
exports.updateAdmin = async function (id, adminObj) {
  // 方式1
  // 1. 得到实例
  const ins = await admin.findByPk(id);
  ins.loginId = adminObj.loginId;
  // 2. 保存
  ins.save();
};
  1. 方式2
//services/adminService
exports.updateAdmin = async function (id, adminObj) {
  const result = await Admin.update(adminObj, {
    where: {
      id,
    },
  });
  return result;
};
//index
const adminSer = require("./services/adminService");
adminSer.updateAdmin(3, {
    loginId: "xiugai",
});

博主开始运营自己的公众号啦,感兴趣的可以关注“飞羽逐星”微信公众号哦,拿起手机就能阅读感兴趣的文章啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞羽逐星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值