官网地址:Sequelize

Sequelize is a promise-based ORM for Node.js v4 and up. It supports the dialects PostgreSQL, MySQL, SQLite and MSSQL and features solid transaction support, relations, read replication and more.

ORM: 对象关系映射(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping)

个人理解:sequelize可以建立与数据库中表形成关系数据映射的模型,然后使用自身提供的api来操作模型,从而操作数据库中的表。

一、安装

1、使用npm安装

前提:需要安装node

npm install --save sequelize

npm install --save mysql2

我用的数据库是mysql,可以根据需要进行安装

2、使用yarn安装

前提:需要安装yarn

yarn add sequelize

yarn add mysql2

二、配置

var Sequelize = require("Sequelize");
const sequelize = new Sequelize('数据库', '用户名', '密码', {
host: 'localhost',
port:'3306',
dialect: 'mysql',
timezone : "+08:00",
}); exports.sequelize = sequelize;

上面是连接数据库的一个简单配置,其他配置可以查看官方文档

三、定义model和表之间的映射

这里我创建了一个用户模型文件,User.js

var Sequelize = require("sequelize");
var sequelize = require('../config.js').sequelize; exports.User = sequelize.define('user',{
Id:{type:Sequelize.INTEGER},
name:{type:Sequelize.STRING},
password:{type:Sequelize.STRING},
number:{type:Sequelize.STRING},
mobile:{type:Sequelize.STRING},
email:{type:Sequelize.STRING},
divisionId:{type:Sequelize.STRING},
role:{type:Sequelize.INTEGER,defaultValue:0},
creditPoint:{type:Sequelize.INTEGER,defaultValue:100}
},{
freezeTableName:true,
timestamps:false
});

具体的数据类型可以查看官方文档中的 Model definition 说明

四、数据查询操作

var User = require('../models/User.js').User;

User.findAll().then(user => {
console.log(user);
})

我在user表里插入了一行数据,查询结果打印如下:

五、错误整理

1、找不到表:Table 'experiment_car.users' doesn't exist

我的表名user,查询时默认加"s",变成了“users”

解决方法:在model文件里加上{ freezeTableName:true }的 配置,sequelize就不会在附加“s”字符

参考:sequelize for Node.js : ER_NO_SUCH_TABLE

2、找不到字段:Unknown column 'createdAt' in 'field list'

user表里面没有createdAt字段,默认情况下,Sequelize将添加属性createdAtupdatedAt模型,便于查询数据插入和最新更新时间

解决方法有两种:

1)在表中添加createdAt和updatedAt字段

2)在model文件里加上{ timestamps:false } 的配置

sequelize初使用的更多相关文章

  1. 分享 koa + mysql 的开发流程,构建 node server端,一次搭建个人博客

    前言 由于一直在用 vue 写业务,为了熟悉下 react 开发模式,所以选择了 react.数据库一开始用的是 mongodb,后来换成 mysql 了,一套下来感觉 mysql 也挺好上手的.re ...

  2. .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验

    不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...

  3. Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验

    Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...

  4. nodejs项目mysql使用sequelize支持存储emoji

    nodejs项目mysql使用sequelize支持存储emoji 本篇主要记录nodejs项目阿里云mysql如何支持存储emoji表情. 因由 最近项目遇到用户在文本输入emoji进行存储的时候导 ...

  5. Spring之初体验

                                     Spring之初体验 Spring是一个轻量级的Java Web开发框架,以IoC(Inverse of Control 控制反转)和 ...

  6. 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践

    提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...

  7. Xamarin.iOS开发初体验

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0

  8. 【初码干货】在Window Server 2016中使用Web Deploy方式发布.NET Web应用的重新梳理

    在学习和工作的过程中,发现很多同事.朋友,在做.NET Web应用发布的时候,依然在走 生成-复制到服务器 这样的方式,稍微高级一点的,就是先发布到本地,再上传到服务器 这种方式不仅效率低下,而且不易 ...

  9. 【腾讯Bugly干货分享】基于 Webpack & Vue & Vue-Router 的 SPA 初体验

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57d13a57132ff21c38110186 导语 最近这几年的前端圈子,由于 ...

随机推荐

  1. 20135202闫佳歆--week5 分析system_call中断处理过程--实验及总结

    week 5 实验:分析system_call中断处理过程 一.使用gdb跟踪分析一个系统调用内核函数(上周选择那一个系统调用)--getpid 复习视频: 如何实现? - 更新menu代码到最新版 ...

  2. Daily Scrum - 11/13

    时间:3:00pm - 3:30pm 今天小组例会主要是任烁分享他对WP源码的code review,通过分析与讨论我们了解了背单词模块的主要类(主要是词和单词本),取词方式(调用数据库接口),算法( ...

  3. “人向猿进阶”之软件工程第三课----WORDCOUNT.EXE统计程序

    ---恢复内容开始--- WC项目要求 这个项目要求写一个命令行程序,模仿已有的wc.exe的功能,并加以扩充,给出某程序设计源语言文件的字符数.单词数和行数.给实现一个统计程序,它能正确统计程序文件 ...

  4. JavaBeans与内省(Introspector)

    JavaBean与Introspector 反射和内省操作很多时候都是在以后要做框架的时候作用非常大.    现在你学的是面向对象编程,即:你所写代码都能够找到对应的类或接口,找到具体的方法写出对应的 ...

  5. Docker(二十四)-Docker使用Portainer搭建可视化界面

    Portainer介绍 Portainer是Docker的图形化管理工具,提供状态显示面板.应用模板快速部署.容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作).事件日志显示.容器控制台 ...

  6. ELK之消息队列选择redis_kafka_rabbitmq

    前言描述 生产初级,Service服务较少,访问量较少,随着业务量的不断增加,日志量成倍增长,然后就遇到了消息队列redis被充爆,不能满足应用的情况.针对此情况,我们来分析下可用的消息多列. 官方推 ...

  7. BZOJ2653 middle(二分答案+主席树)

    与中位数有关的题二分答案是很常用的trick.二分答案之后,将所有大于它的看成1小于它的看成-1,那么只需要判断是否存在满足要求的一段和不小于0. 由于每个位置是1还是-1并不固定,似乎不是很好算.考 ...

  8. suse11/12关闭防火墙

    suse11关闭操作为:service SuSEfirewall2_setup stopservice SuSEfirewall2_init  stop 取消开机启动防火墙:chkconfig SuS ...

  9. 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest C(记忆化搜索)

    C题 Problem C Game Map 思路: 之前暴力搜索写了好几发,一直超时,后面看其他人的题解发现要用记忆化搜索..直接暴力搜的话有太多重 复的计算. dist u 表示以u 为起点所能走的 ...

  10. BZOJ 2561 最小生成树 | 网络流 最小割

    链接 BZOJ 2561 题解 用Kruskal算法的思路来考虑,边(u, v, L)可能出现在最小生成树上,就是说对于所有边权小于L的边,u和v不能连通,即求最小割: 对于最大生成树的情况也一样.容 ...