随着前后端分离的趋势不断发展,前端工程师也越来越需要掌握一些后端技能。其中,操作数据库无疑是必不可少的一项技能。本文将介绍在 Koa 项目中如何使用 Sequelize ORM 操作数据库。
什么是 Sequelize ORM
Sequelize 是一个基于 JavaScript 的 ORM(Object Relational Mapping,面向对象的数据库访问接口)。它可以在 Node.js、浏览器和 Electron 中工作,并支持 PostgreSQL、MySQL、SQLite 和 MSSQL 等数据库。使用 Sequelize 可以将关系型数据库中的数据转化为 JavaScript 对象,从而在 JavaScript 中方便地操作数据。
安装和配置
在使用 Sequelize 前,需要先安装和配置 Sequelize。首先全局安装 Sequelize CLI:
npm install sequelize-cli -g
然后在项目中依赖中安装 Sequelize:
npm install sequelize
同时安装数据库驱动,比如 MySQL 驱动:
npm install mysql2
接着,在项目中创建一个配置文件 config.js
,并进行配置:
-- -------------------- ---- ------- -------------- - - ------------ - --------- ------- --------- --------- --------- ------- ----- ------------ -------- ------- -- ----- - --------- ------- --------- --------- --------- ------- ----- ------------ -------- ------- -- ----------- - --------- ------- --------- --------------------------- --------- ------- ----- ------------ -------- ------- - -
根据自己的需要配置不同环境下的数据库信息即可。
使用 Sequelize
接下来,就可以在 Koa 项目中使用 Sequelize 操作数据库了。首先,在 app.js
中引入 Sequelize:
-- -------------------- ---- ------- ----- --------- - -------------------- ----- ------ - ------------------- ----- --------- - --- ---------- -------------------------------------- -------------------------------------- -------------------------------------- - ----- ---------------------------------- -------- ------------------------------------ - -
然后定义一个模型 User
:
const { Model, DataTypes } = require('sequelize') class User extends Model {} User.init({ username: DataTypes.STRING, password: DataTypes.STRING }, { sequelize })
其中,Model
和 DataTypes
分别是 Sequelize 提供的模型和数据类型,sequelize
则是刚刚创建的 Sequelize 实例。
接着就可以在控制器中使用模型了,比如获取用户列表:
async function getUserList(ctx) { const userList = await User.findAll() ctx.body = { userList } }
当然,还可以对数据进行增、删、改等操作。比如新增用户:
async function addUser(ctx) { const { username, password } = ctx.request.body const user = await User.create({ username, password }) ctx.body = { user } }
总结
本文介绍了在 Koa 项目中如何使用 Sequelize ORM 操作数据库,包括安装和配置、定义模型、增删改查等常见操作。Sequelize 的使用可以让前端开发者更加方便地操作数据库,是一项不可或缺的技能。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64fad085f6b2d6eab319c45e