Sequelize模型的增删改
一、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
//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();
}
};
- 方式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
//services/adminService
exports.updateAdmin = async function (id, adminObj) {
// 方式1
// 1. 得到实例
const ins = await admin.findByPk(id);
ins.loginId = adminObj.loginId;
// 2. 保存
ins.save();
};
- 方式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",
});
博主开始运营自己的公众号啦,感兴趣的可以关注“飞羽逐星”微信公众号哦,拿起手机就能阅读感兴趣的文章啦!