简介
MySQL 是广受欢迎的对于 Web 开发人员来说首选的关系型数据库之一。sequelize-mysql-model 是一个npm包,提供了一个简便的方法来实现快速建置数据库关系模型的能力,让前端开发人员更加专注于应用的开发工作,而不必关注数据库的复杂操作细节。
安装
你可以通过 npm 进行 sequelize-mysql-model 的安装
npm install -s sequelize-mysql-model
基础用法
- 在你的项目代码中引入 sequelize-mysql-model
const SequelizeModel = require('sequelize-mysql-model');
- 在创建数据库连接的时候,直接将连接对象传入 创建 SequelizeModel 对象
const sequelize = new Sequelize({ database: 'my-db', username: 'root', password: null }); const model = new SequelizeModel({ sequelize });
创建模型
创建模型是使用 SequelizeModel 的主要任务。令人惊讶的是,sequelize-mysql-model 的模型定义只需要一行代码就可以实现,下面看一个简单的例子:
model.defineModel('User', { name: Sequelize.STRING, birthdate: Sequelize.DATE, age: Sequelize.INTEGER });
增删改查
创建了模型后想要进行常规的CRUD操作,非常简单,通过 sequelize-mysql-model 的API提供的方法进行操作即可。
查询
model.find('User', 1) .then(user => { console.log(user); });
关于查询操作,sequelize-mysql-model 提供了两个方法,分别为 find 和 findAll , 当然,在实际项目开发中,确保数据结果返回的准确本质上并不仅仅依赖于 SequelizeModel 的解决方案,数据库索引配置和查询优化也是必不可少的。
插入
model.create('User', { name: 'Alex', birthdate: Date.now(), age: 30 }) .then(user => { console.log(user); });
更新
model.update('User', { age: 20 }, { id: 1 }) .then(num => { console.log(num); });
删除
model.delete('User', 1) .then(num => { console.log(num); });
高级用法
当然,sequelize-mysql-model 的 API 操作还有更加强大的功能,比如:
导入模型定义文件
将所有的模型定义的内容都放进一个文件之中,然后将这个文件导入即可,这种方式会更加整洁
const models = require('./models')(sequelize); // 使用 model.create(models.User, { name: 'Alex', birthdate: Date.now(), age: 30 });
关联模型
关联模型是 SequelizeModel 的又一重要特性,关联的效果可能是其他库内 API 无法提供的。例如:
-- -------------------- ---- ------- ------------------------- - -- --- --- ---------------------------- - ----- ----------------- ------------ --------------- --- -------------------------------- - ----- ----------------- --- -- ------------ ----------------------- - - ------ -------------- --- ----------------------- - --- -------------------------- - - ------ -------------- --- -------------------- - ---
总结
通过本文, 我们掌握了如何使用 SequelizeModel 快速构建mysql数据模型,让前端更多的关注于应用开发而不是数据库操作细节。同时,sequelize-mysql-model为我们提供了许多实用且有趣的API来简化数据操作。虽然 SequelizeModel 可以模拟一个部分的ORM,但当着重考虑到数据库的属于的时候还需要考虑到使用正确的方法,配置更好的索引和数据结构等细节。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056ff181e8991b448e7c30