node中sequelize中间件的常规使用

本文介绍了如何在Node.js中使用Sequelize中间件进行数据库连接和操作,通过示例展示了其简单易用的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看常规的,使用mysql连接数据库的写法

(async () => {
  const mysql = require('mysql2/promise')
  // 链接设置
  const cfg = {
    host: 'localhost',
    user: 'root',
    password: 'password',
    database: 'testdb1'
  }
  const connection = await mysql.createConnection(cfg)
  let ret = await connection.execute(`
    CREATE TABLE IF NOT EXISTS test (
    id INT NOT NULL AUTO_INCREMENT,
    message VARCHAR(45) NULL,
    PRIMARY KEY (id))
  `)
  console.log('create:', ret)
  ret = await connection.execute(`
      INSERT INTO test(message) VALUES (?) 
  `, ['abc'])
  console.log('insert', ret)

  const [rows, fields] = await connection.execute(`
      SELECT * FROM test
  `)
  console.log('rows:' + JSON.stringify(rows))
})()

接着引入sequelize中间件

// 像操作对象一样操作数据库就是sequelize干的事情

(async () => {
  const Sequelize = require('sequelize')
  const sequelize = new Sequelize('testdb1', 'root', 'password', {
    host: 'localhost',
    dialect: 'mysql'
  })

  // 定义模型
  const Fruit = sequelize.define('Fruit', {
    id: {
      type: Sequelize.DataTypes.UUID,
      defaultValue: Sequelize.DataTypes.UUIDV1,
      primaryKey: true
    },
    name: { type: Sequelize.STRING(20), allowNull: false },
    price: { type: Sequelize.FLOAT, allowNull: false },
    stock: { type: Sequelize.INTEGER, defaultValue: 0 }
  })
  let ret = await Fruit.sync({ force: true })
  // insert
  ret = await Fruit.create({
    name: 'banana',
    price: 3.5,
    stock: 500
  })
  console.log('create', ret)
  // update
  ret = await Fruit.update({
    price: 4
  }, {
    where: { name: 'banana' }
  })
  // select
  const op = Sequelize.Op;
  ret = await Fruit.findAll({
    where: {
      price: { [op.lt]: 5, [op.gt]: 2 }
    }
  })
  console.log('select', JSON.stringify(ret))
})()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值