美文网首页
sequelize 的用法笔记

sequelize 的用法笔记

作者: taomas | 来源:发表于2018-09-28 18:57 被阅读118次

sequelize 的快速入门

sequelize 是一个 orm 框架,说起 ORM,Object Relational Mapping,有 Hibernate,JPA 等成熟的 Java 框架。
Sequelize 是 JS 端的 hibernate,用于使用 nodejs 完成 server 端到数据库的 CRUD 等等操作。

安装

// 使用 NPM
npm install --save sequelize

# 还有以下之一:
$ npm install --save pg pg-hstore
$ npm install --save mysql2
$ npm install --save sqlite3
$ npm install --save tedious // MSSQL

建立连接

const sequelize = new Sequelize('database', 'username', 'password', {
  host: 'localhost',
  dialect: 'mysql',
  pool: {
    max: 5,
    min: 0,
    idle: 10000
  }
})

测试连接

您可以使用 .authenticate() 函数来测试连接。

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

定义模型

模型使用sequelize.define('name', {attributes}, {options}) 来定义.

const User = sequelize.define('t_user', {
  firstName: {
    type: Sequelize.STRING
  },
  lastName: {
    type: Sequelize.STRING
  }
})

// 初始化表
// force: true 如果表已经存在,将会丢弃表
// alter: true 如果表已存在,不过丢弃,如果不存在会直接创建表
User.sync({ alter: true })

Sequelize 的字段类型
文档地址:Sequelize 的字段类型

你可以在models-definition查看更多模型定义的内容

更多查询相关逻辑:querying

创建查询

// 查询所有user
async function queryAllUser() {
  let data = await User.findAll()
  return data
}
User.findAll().then(users => {
  console.log(users)
})

// 查询所有user,返回对应字段
async function queryAllUser() {
  let data = await User.findAll({
    attributes: ['username', 'role', 'userId']
  })
  return data
}

// 根据userId进行查询
async function queryUserById(userId) {
  let data = await User.findAll({
    attributes: ['username', 'role', 'userId'],
    where: {
      userId: userId
    }
  })
  return data
}

// 通过默认生成的id进行查询
User.findById(123)

// 查询时新增分页逻辑
async function queryUserList(start, limit) {
  let data = await User.findAndCountAll({
    offset: start * limit,
    limit: limit
  })
  return {
    data: data.row,
    count: data.count
  }
}

操作数据库表

// 给t_user表新增数据
User.create({
  username: '张三',
  password: '123456'
})

// 更新数据
User.update(params, {
  where: {
    userId: userId
  }
})

// 删除数据
User.destroy({
  where: {
    userId: userId
  }
})

参考资料

Sequelize 中文文档 v4 - Getting started - 入门

相关文章

网友评论

      本文标题:sequelize 的用法笔记

      本文链接:https://www.haomeiwen.com/subject/qcmbnftx.html