热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

sequelize的使用

什么是sequelize?sequelize是一个orm框架,什么是orm呢?即Object-RelationlMappingÿ

什么是sequelize?

sequelize是一个orm框架,什么是orm呢?即Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了。

安装依赖

知道了sequelize是什么,很想在项目中使用起来吧!那接下来开始我们的第一步吧!在项目的根目录运行 npm i mysql2 sequelize -S

创建sequelize连接配置文件

依赖也有了,下面我们创建sequelize的配置文件吧!在项目的根目录下新建src目录,并在目录中新建seq.js文件。

const Sequelize = require('sequelize')const conf = {host: 'localhost',dialect: 'mysql'
}const seq = new Sequelize('koa2_weibo_db', 'root', '111111', conf)// 测试连接
seq.authenticate().then(() => {console.log('ok')
}).catch(() => {console.log('err')
})module.exports = seq

写完后可以使用node命令运行一下,如果命令行输出了ok,那就恭喜你成功了,是不是很简单~

创建模型并同步数据表

接下来还有一点准备工作要进行,有了配置文件还不够,我们还需要创建模型和同步数据表的文件。在src目录新建model.jssync.js文件

// model.js
const Sequelize = require('sequelize')
// 数据库配置文件
const seq = require('./seq')// 创建 users 模型
const User = seq.define('user', {// id 会自动创建,并设为主键、自增userName: {type: Sequelize.STRING,allowNull: false,comment: '用户名'},password: {type: Sequelize.STRING,allowNull: false,comment: '密码'},nickName: {type: Sequelize.STRING,comment: '昵称'}// 自动创建 createdAt updatedAt
})module.exports = {User
}

同步数据表

const seq = require('./seq')require('./model')// 测试连接
seq.authenticate().then(() => {console.log('ok')
}).catch(() => {console.log('err')
})// 执行同步
// force 值为 true 时,表示每次执行这个方法都会先将表给删掉,再重新创建
seq.sync({ force: true }).then(() => {console.log('sync ok')process.exit()
})

插入数据

从现在开始,终于到了实战的时候了。现在我们的数据库中有了blogsusers两张表,但是我们还没有数据。那我们就添加 数据吧!在src目录新建create.js文件。

const { User, Blog } = require('./model')// 如果前面写的报错的,也会执行后面的
!(async function () {// 创建用户const person = await User.create({userName: 'lisi',password: '123',nickName: '李四'})console.log('person: ', person.dataValues)const blog = await Blog.create({title: '标题4',content: '内容4',userId: person.dataValues.id})console.log('blog: ', blog.dataValues)
})()

使用node运行一下这个文件


推荐阅读
  • 深入解析ES6至ES8的新特性与应用
    本文详细介绍了自2015年发布的ECMAScript 6.0(简称ES6)以来,JavaScript语言的多项重要更新,旨在帮助开发者更好地理解和利用这些新特性进行复杂应用的开发。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • 在使用 DataGridView 时,如果在当前单元格中输入内容但光标未移开,点击保存按钮后,输入的内容可能无法保存。只有当光标离开单元格后,才能成功保存数据。本文将探讨如何通过调用 DataGridView 的内置方法解决此问题。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
author-avatar
清山水妖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有