node.js使用Sequelize操作数据库

简介: node.js使用Sequelize操作数据库

Sequelize是一个基于 promise 的 Node.js ORM(对象关系映射)。
目前支持 Postgres、MySQL、MariaDB、SQLite和Microsoft SQL Server; 它具有强大的事务支持, 关联关系, 预读和延迟加载,读取复制等功能。
官方网址:
https://sequelize.org/v5/index.html
npm安装:npm install --save sequelize
使用何种数据库,要安装对应的npm类库,对应的几类数据库安装:
image.png
数据库的初始化代码:

const Sequelize = require('sequelize');
//第一种方式:传递数据库连接信息(ip、端口、用户名密码等)
sequelize = new Sequelize('database', 'username', 'password',{
   
   
host: 'localhost',
 dialect: /* one of 'mysql' | 'mariadb' | 'postgres' | 'mssql' */});
//第二种方式:使用uri的字符串连接方式
sequelize = new Sequelize('postgres://user:pass@example.com:5432/dbname');
验证数据库连接是否成功:
     sequelize.authenticate().then(() => {
   
         console.log('Connection has been established successfully.');

}).catch(err => {
   
   
console.error('Unable to connect to the database:', err);
});
// await方式:
       await sequelize.authenticate();

数据库的操作上,只要是以模型和数据库的表进行对应,同时也支持sql语句的查询方式。
模型定义(https://sequelize.org/v5/manual/models-definition.html):

const Model = Sequelize.Model;
class User extends Model {
   
   }
User.init({
   
   
//属性设置     
 firstName: {
   
   
  type: Sequelize.STRING,
  allowNull: false
   },      lastName: {
   
          type: Sequelize.STRING 
     }}, {
   
   
 //属性设置  
  sequelize, 
  modelName: 'user'  
 });

需要注意的是,上述定义一个user的模型,需要对应在数据库表中,有users这个表,要实现自己定义表名,需要在属性中设置以下两个参数:

freezeTableName: false,
   tableName: 'define_user'

直接执行sql语句查询(https://sequelize.org/v5/manual/raw-queries.html):

sequelize.query("SELECT * FROM `users`", {
   
    type: sequelize.QueryTypes.SELECT})
  .then(users => {
   
       
//返回json对象
  })

参考文档:
官网:
https://sequelize.org/v5/index.html
中文文档网站:
https://github.com/demopark/sequelize-docs-Zh-CN

相关文章
|
7月前
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
227 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
|
7月前
|
人工智能 JavaScript 安全
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
295 13
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
|
8月前
|
缓存 NoSQL JavaScript
Vue.js应用结合Redis数据库:实践与优化
将Vue.js应用与Redis结合,可以实现高效的数据管理和快速响应的用户体验。通过合理的实践步骤和优化策略,可以充分发挥两者的优势,提高应用的性能和可靠性。希望本文能为您在实际开发中提供有价值的参考。
181 11
|
11月前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
10月前
|
JSON JavaScript 关系型数据库
node.js连接GBase 8a 数据库 并进行查询代码示例
node.js连接GBase 8a 数据库 并进行查询代码示例
|
12月前
|
SQL JavaScript 关系型数据库
Node服务连接Mysql数据库
本文介绍了如何在Node服务中连接MySQL数据库,并实现心跳包连接机制。
134 0
Node服务连接Mysql数据库
|
21天前
|
安全 关系型数据库 MySQL
MySQL安全最佳实践:保护你的数据库
本文深入探讨了MySQL数据库的安全防护体系,涵盖认证安全、访问控制、网络安全、数据加密、审计监控、备份恢复、操作系统安全、应急响应等多个方面。通过具体配置示例,为企业提供了一套全面的安全实践方案,帮助强化数据库安全,防止数据泄露和未授权访问,保障企业数据资产安全。
|
6天前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
39 3
|
12天前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
1月前
|
存储 运维 关系型数据库
从MySQL到云数据库,数据库迁移真的有必要吗?
本文探讨了企业在业务增长背景下,是否应从 MySQL 迁移至云数据库的决策问题。分析了 MySQL 的优势与瓶颈,对比了云数据库在存储计算分离、自动化运维、多负载支持等方面的优势,并提出判断迁移必要性的五个关键问题及实施路径,帮助企业理性决策并落地迁移方案。