什么是 Sequelize
Sequelize 是一个基于 Node.js 的 ORM(Object-Relational Mapping)框架,它支持多种数据库后端,包括 MySQL、PostgreSQL、SQLite 和 MSSQL。Sequelize 可以让开发者通过编写 JavaScript 代码来操作数据库,而无需编写 SQL 语句。
在 Express.js 中使用 Sequelize
在 Express.js 中使用 Sequelize 有以下几个步骤:
1. 安装 Sequelize 和数据库驱动
在项目根目录下运行以下命令:
npm install sequelize mysql2
其中,mysql2
是 MySQL 数据库的 Node.js 驱动,如果你使用的是其他数据库,可以选择相应的驱动。
2. 配置 Sequelize
在项目根目录下创建一个名为 sequelize.js
的文件,用于配置 Sequelize:
const Sequelize = require('sequelize'); const sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'mysql', }); module.exports = sequelize;
其中,database
、username
、password
分别是数据库的名称、用户名和密码,host
是数据库的地址,dialect
是数据库的类型。
3. 定义模型
在 Sequelize 中,每个表都对应一个模型。在项目根目录下创建一个名为 models
的文件夹,在其中创建一个名为 user.js
的文件,用于定义用户模型:
// javascriptcn.com 代码示例 const Sequelize = require('sequelize'); const sequelize = require('../sequelize'); const User = sequelize.define('user', { id: { type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true, }, name: { type: Sequelize.STRING, allowNull: false, }, age: Sequelize.INTEGER, }); module.exports = User;
以上代码定义了一个名为 user
的模型,包含三个字段:id
、name
和 age
。其中,id
是主键,自增;name
是字符串类型,不允许为空;age
是整数类型。
4. 同步数据库
在项目根目录下创建一个名为 sync.js
的文件,用于同步数据库:
const sequelize = require('./sequelize'); const User = require('./models/user'); sequelize.sync({ force: true }).then(() => { console.log('Database synced'); });
以上代码会将模型同步到数据库中。force: true
表示每次同步都会删除已有的表,重新创建。
5. 使用模型
在 Express.js 中使用模型,可以进行增删改查等操作。以下是一些常用的操作示例:
新建用户
const User = require('./models/user'); User.create({ name: '张三', age: 18, }).then(user => { console.log(user.toJSON()); });
以上代码会在数据库中创建一个名为“张三”,年龄为 18 的用户,并将其打印出来。
查询用户
const User = require('./models/user'); User.findAll().then(users => { console.log(users.map(user => user.toJSON())); });
以上代码会查询出数据库中所有的用户,并将其打印出来。
更新用户
// javascriptcn.com 代码示例 const User = require('./models/user'); User.update({ age: 20, }, { where: { name: '张三', }, }).then(() => { console.log('User updated'); });
以上代码会将名为“张三”的用户的年龄更新为 20。
删除用户
// javascriptcn.com 代码示例 const User = require('./models/user'); User.destroy({ where: { name: '张三', }, }).then(() => { console.log('User deleted'); });
以上代码会删除名为“张三”的用户。
总结
本文介绍了在 Express.js 中使用 Sequelize 做 ORM 的方法,包括配置 Sequelize、定义模型、同步数据库和使用模型等步骤。通过本文的学习,读者可以了解到 Sequelize 的基本用法,并可以在自己的项目中使用 Sequelize 进行数据库操作。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65571b2ad2f5e1655d18a8e3