Primeros pasos con Sequelize: haga una pequeña demostración desde cero

empezando

Este artículo registra el uso básico de Sequelize paso a paso desde la instalación hasta la conexión a la base de datos, la adición, eliminación, modificación y verificación.

documento

documento chino

Secuela 6 API

Instalar

npm i sequelize   // Esto instalará la última versión de Sequelize
npm i mysql2   // Instale manualmente el controlador para la base de datos seleccionada, aquí tomamos MySQL como ejemplo

usar

Primero intente escribir una demostración simple (consulte a continuación la descripción específica de la configuración y la API utilizada en la demostración, puede ubicarla rápidamente a través del directorio).

  1. Crear una nueva carpeta de prueba de secuela
  2. En la carpeta npm init -y
  3. npm instalar mysql2 secuenciar --guardar
  4. Cree una nueva carpeta src en sequelize-test.

Conectarse a la base de datos

Cree uno nuevo en src: db.js

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

const conf = {
  host: 'localhost',
  dialect: 'mysql' // 连接到的数据库的方言。mysql、postgres、sqlite、db2、mariadb和mssql之一。
}

// 创建 sequelize 实例,依次传入 database username password options
const seq = new Sequelize(
  'sequelize_test', // database 数据库名称 
  'root', // username 用户名
  '你的密码', // password 密码
  conf // options
)

Tenga en cuenta que la base de datos correspondiente debe crearse primero, de lo contrario, la conexión fallará.

conexión de prueba

// 用 authenticate 测试连接
seq.authenticate().then(() => {
  console.log('Connection has been established successfully.');
}).catch((error) => {
  console.error('Unable to connect to the database:', error);
})

Ingrese a la terminal node src/db.jse intente ejecutarlo (la imagen a continuación es cómo se ve después de una conexión exitosa):

Si falla la conexión, recuerde verificar si el nombre de usuario y la contraseña se han ingresado incorrectamente. Puede ver lo que se imprimirá si ingresa la contraseña incorrecta:

Si la base de datos rellenada en la configuración no existe, el mensaje de error es el siguiente:

crear modelo

Cree uno nuevo en src: model.js.

const Sequelize = require('sequelize')
const seq = require('./db')

// User 模型
// define 接收两个参数,第一个是名称,第二个是配置,配置各个列。
const User = seq.define(
  // 同步到数据库的 users 表。默认情况下, Sequelize 会自动将模型名转为复数并用作表名。
  'user', 
  {
    // id 不用定义,sequelize 会帮我们增加上
    // 默认情况下,Sequelize 使用数据类型 DataTypes.DATE 自动向每个模型添加 createdAt 和 updatedAt 字段.
    username: {
      type: Sequelize.STRING, // 数据类型:VARCHAR(255)
      allowNull: false   // 设为必填
    },
    password: {
      type: Sequelize.STRING,
      allowNull: false
    },
    realname: {
      type: Sequelize.STRING,
    }
  }
)

Sincronizar modelo con base de datos

Cree un nuevo archivo sync.js en src, sync significa sincronización.

const seq = require('./db')

// 需要同步的模型
require('./model')

// 将模型同步到数据库
seq.sync().then(() => {
  process.exit() // 退出进程
})

Entrada de terminal node src/sync.js, intente ejecutar:

Puedes echar MySQLWorkbenchun vistazo a:

nuevos datos

Crea un nuevo create.js bajo src:

const { User } = require('./model')

!(async function () {
  // 创建 user
  const ly = await User.create({
    username: 'ly',
    password: '123',
    realname: '梨衣衣'
  })
  console.log('ly:', ly)
})()

Mire los resultados impresos: solo necesitamos usar los valores de datos en él.

Podemos MySQLWorkbenchechar un vistazo: (He creado dos piezas de datos antes del ejemplo, y la tercera pieza se acaba de agregar)

encontrar datos

Crea un nuevo select.js bajo src:

1. Consultar un dato

const { User } = require('./model')

!(async function() {
  // 模拟登录(通过查询一条数据的方式) 
  const sl = await User.findOne({
    // 查询条件
    where: {
      username: 'sl',
      password: '123'
    }
  })
  console.log('sl:', sl.dataValues)
})()

Ingrese en la terminal node src/select.jsy vea el resultado de la impresión:

2. Consulta múltiples piezas de datos:

const Sequelize = require('sequelize')
const { User } = require('./model')

!(async function() {
  const userList = await User.findAll({
    // 条件
    where: {
      username: {
        // 模糊查询,相当于`select * from users where username like '%${keyword}%'`
        [Sequelize.Op.like]: '%l%' 
      }
    },
    // 排序
    order: [
      ['id', 'desc'] // 相当于 SQL 语句:order by id desc,根据id倒序排序
    ]
  })
  console.log('userList:', userList.map(item => item.dataValues))
})()

Ingrese en la terminal node src/select.jsy vea el resultado de la impresión:

cambiar los datos

Crea un nuevo update.js bajo src:

const { User } = require('./model')

!(async function () {
  const res = await User.update(
    // 修改的内容 (示例修改 realname 和 password)
    {
      realname: '梨衣',
      password: '111'
    },
    // 条件(要修改哪条数据)
    {
      where: {
        id: 3
      }
    }
  )
  console.log('修改后的res', res)
})()

Ingrese en la terminal node src/update.jsy vea el resultado de la impresión:

El valor de res es el número de elementos afectados por esta operación: [1] significa que un elemento se ha modificado correctamente. [0] indica que se han modificado 0 elementos.

Podemos MySQLWorkbenchechar un vistazo, el último dato ha sido modificado:

borrar datos

Crea un nuevo delete.js bajo src:

const { User } = require('./model')

!(async function () {
  const res = await User.destroy({
    where: {
      id: 3,
      username: 'ly'
    }
  })
  console.log('删除后的res:', res)
})()

Ingrese en la terminal node src/delete.jsy vea el resultado de la impresión:

El valor de res es el número de entradas eliminadas en esta operación: 1 significa que 1 entrada se eliminó correctamente.


API y configuración complementaria de datos

crear instancia

Configure el nombre de la base de datos, el nombre de usuario, la contraseña, etc., y cree una instancia de secuenciación.

Algunos parámetros que se pueden pasar cuando se crea una secuencia nueva: database, username, password, options .

Entre ellas, las opciones incluyen host, port, password, database, dialectetc.

Para parámetros específicos, consulte la documentación (constructor)

dialecto

El dialecto de la base de datos a la que conectarse. Uno de mysql, postgres, sqlite, db2, mariadb y mssql.

API

autenticar()

Puede usar este método para probar si la conexión es normal.

definir()

  • Defina un nuevo modelo que represente una tabla en la base de datos.
  • El segundo parámetro pasa un objeto, que se utiliza para definir cada columna de la tabla, y la clave del objeto corresponde a la columna de la tabla.

sincronizar ()

  • Sincronice todos los modelos definidos con la base de datos.

Supongo que te gusta

Origin blog.csdn.net/dongkeai/article/details/127433549
Recomendado
Clasificación