官网地址: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. 初次接触OSSEC

    OSSEC是一款开源的系统监控平台.它集成了HIDS(主机入侵检测).日志监控.安全事件管理(SIM).安全信息和事件管理(SIEM)于一身,结构简单.功能强大的开源解决方案. 主要优点 满足合规性 ...

  2. 微软职位内部推荐-Senior Software Engineer - Back End

    微软近期Open的职位: SharePoint is a multi-billion dollar enterprise business that has grown from an on-prem ...

  3. 3月web前端面试小结

    说一下box-sizing的应用场景 box-sizing的属性值分为两个,border-box和content-box,其中, border-box:width=content+padding+bo ...

  4. 20135220谈愈敏Blog2_操作系统是如何工作的

    操作系统是如何工作的 谈愈敏 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 计 ...

  5. SQL Sever——远程过程调用失败(0x800706be)

    最近重装了系统,VS和SQL Sever莫名奇妙的不能用了.下面总结一下这个过程中遇到的问题,跟大家分享一下经验~~ 大概是以前的安装过程都十分顺利,这次,在尝试了数次登陆不上去之后,我仍然怀疑是自己 ...

  6. C#ToString() 格式化数值

    格式字符串采用以下形式:Axx,其中 A 为格式说明符,指定格式化类型,xx 为精度说明符,控制格式化输出的有效位数或小数位数. 格式说明符 说明 示例 输出 C 货币 2.5.ToString(&q ...

  7. week5-Internetwork Layer

    Technology:Internets and Packets course Layer 2 : Internet Protocol The InterNetwork Internetwork La ...

  8. Windows下多线程编程(二)

    线程的分类 1.     有消息循环线程 MFC中有用户界面线程,从CWinThread派生出一个新的类作为UI线程类CUIThread,然后调用AfxBeginthread(RUNTIME_CLAS ...

  9. linux下MySQL使用方法

    一.登录MySQL 登录MySQL的命令是mysql, mysql 的使用语法如下:  mysql [-u username] [-h host] [-p[password]] [dbname] us ...

  10. 【刷题】BZOJ 2194 快速傅立叶之二

    Description 请计算C[k]=sigma(a[i]*b[i-k]) 其中 k < = i < n ,并且有 n < = 10 ^ 5. a,b中的元素均为小于等于100的非 ...