Nodejs ORM框架sequelize的使用

发布于 1周前 作者 yibo5220 来自 nodejs/Nestjs

Nodejs ORM框架sequelize的使用
Sequelize 是一个非常流行的 Node.js ORM(对象关系映射)库,它支持多种数据库,如 PostgreSQL、MySQL、MariaDB、SQLite 和 Microsoft SQL Server。以下是使用 Sequelize 的基本步骤和一些常见操作。

安装

首先,你需要安装 Sequelize 和你想要使用的数据库驱动。这里以 MySQL 为例:

npm install sequelize
npm install mysql2

基本配置

创建一个配置文件来设置数据库连接信息:

const { Sequelize } = require('sequelize');

const sequelize = new Sequelize('database', 'username', 'password', {
  host: 'localhost',
  dialect: 'mysql'
});

(async () => {
  try {
    await sequelize.authenticate();
    console.log('Connection has been established successfully.');
  } catch (error) {
    console.error('Unable to connect to the database:', error);
  }
})();

定义模型

定义你的数据模型。例如,我们创建一个 User 模型:

const { DataTypes } = require('sequelize');

const User = sequelize.define('User', {
  // Model attributes are defined here
  firstName: {
    type: DataTypes.STRING,
    allowNull: false
  },
  lastName: {
    type: DataTypes.STRING
    // allowNull defaults to true
  }
}, {
  // Other model options go here
});

创建表

在定义模型之后,你需要同步模型到数据库,创建相应的表:

(async () => {
  await sequelize.sync({ force: true });
  console.log("Database & tables created!");
})();

数据操作

插入数据

const newUser = await User.create({
  firstName: 'John',
  lastName: 'Hancock'
});
console.log(newUser.get());

查询数据

// Find one user
const user = await User.findOne({ where: { firstName: 'John' } });

// Find all users
const users = await User.findAll();
console.log(users);

更新数据

await User.update(
  { firstName: 'Jane' }, // Data you want to update
  { where: { firstName: 'John' } } // Conditions for finding the record to update
);

删除数据

await User.destroy({
  where: { firstName: 'Jane' }
});

以上就是使用 Sequelize 进行基本操作的方法。你可以根据自己的需求调整模型定义、查询条件等。Sequelize 提供了丰富的 API 来处理更复杂的数据库操作。


3 回复

当然,小老弟!说到Node.js界的ORM大侠, Sequelize绝对算一号人物。它就像是数据库界的瑞士军刀,能帮你轻松应对各种数据库操作,从增删改查到复杂查询,一应俱全。

首先,你需要安装Sequelize和相应的数据库驱动,比如MySQL或PostgreSQL。接着,定义你的数据模型,就像给数据库角色分配个性一样。例如:

const { Sequelize, DataTypes } = require('sequelize');
const sequelize = new Sequelize('sqlite::memory:');

const User = sequelize.define('User', {
  username: {
    type: DataTypes.STRING,
    allowNull: false
  },
  birthday: DataTypes.DATE
}, {});

然后,就可以开始你的数据库冒险了,比如创建、查找、更新和删除记录,Sequelize都提供了相应的方法,让你的操作如行云流水般顺畅。

// 创建新用户
await User.create({
  username: 'john Doe',
  birthday: new Date(1980, 6, 24) // July 24, 1980
});

// 查找用户
const users = await User.findAll();
console.log(users);

Sequelize还支持事务、关联等高级功能,让数据库操作更加灵活高效。总之,Sequelize就是那个能让你的数据库操作变得既简单又有趣的超级英雄!


Sequelize 是一个基于 promise 的 Node.js ORM(对象关系映射)工具,支持 PostgreSQL, MySQL, MariaDB, SQLite 和 Microsoft SQL Server。以下是如何使用 Sequelize 的基本步骤和示例。

1. 安装 Sequelize

首先需要安装 Sequelize 和相应的数据库驱动:

npm install sequelize
npm install pg-hstore  # 如果使用 PostgreSQL
npm install mysql2    # 如果使用 MySQL
npm install mariadb   # 如果使用 MariaDB
npm install sqlite3   # 如果使用 SQLite
npm install tedious   # 如果使用 MSSQL

2. 连接到数据库

创建一个 db.js 文件来设置 Sequelize 连接:

const { Sequelize } = require('sequelize');

// 创建 Sequelize 实例
const sequelize = new Sequelize('database', 'username', 'password', {
  host: 'localhost',
  dialect: 'mysql' // 或其他如 postgres, sqlite, mssql 等
});

module.exports = sequelize;

3. 定义模型

创建模型文件,例如 User.js

const { DataTypes } = require('sequelize');
const sequelize = require('./db');

const User = sequelize.define('User', {
  username: {
    type: DataTypes.STRING,
    allowNull: false
  },
  birthday: DataTypes.DATE
}, {
  timestamps: false  // 禁止自动生成 created_at 和 updated_at 字段
});

module.exports = User;

4. 数据库同步

在应用启动时运行数据库同步,确保数据库模式与定义的模型一致:

const User = require('./models/User');

(async () => {
  await sequelize.sync();  // 创建所有表
  console.log("Database synced");
})();

5. 基本 CRUD 操作

  • 创建记录:

    const newUser = await User.create({ username: 'test', birthday: new Date() });
  • 读取记录:

    const user = await User.findByPk(1);
    console.log(user.username);
  • 更新记录:

    await User.update({ username: 'newName' }, { where: { id: 1 } });
  • 删除记录:

    await User.destroy({ where: { id: 1 } });

这些是使用 Sequelize 的基础。你可以通过查阅官方文档来了解更复杂的功能,如关联、事务处理等。

Sequelize 是一个基于 promise 的 Node.js ORM(对象关系映射),适用于 PostgreSQL、MySQL、MariaDB、SQLite 和 Microsoft SQL Server。使用时,首先安装 Sequelize 和对应数据库驱动。定义模型时,需设置字段属性及关联。常用方法包括创建、查询、更新和删除记录。例如:

npm install sequelize
npm install --save pg pg-hstore # 对于 PostgreSQL
const { Sequelize, Model, DataTypes } = require('sequelize');
const sequelize = new Sequelize('database', 'username', 'password', {
  dialect: 'sqlite',
  storage: 'path/to/your/database.sqlite'
});

class User extends Model {}
User.init({
  username: {
    type: DataTypes.STRING,
    allowNull: false
  }
}, { sequelize, modelName: 'user' });

// 使用
(async () => {
  await sequelize.sync();
  const user = await User.create({ username: 'example' });
})();
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!