SlideShare a Scribd company logo
SEQUELIZE 實務分享
NODE.JS線上讀書會 MACY
哥爾羅傑:自己去找吧,我把全世界的寶藏都埋藏在那裡了
SOURCE
▸github :
▸https://github.com/windwaterbo/structuring-models-with-
sequelizejs
▸https://github.com/windwaterbo/sequelizejs-mysql-practice
▸slider share:
▸sequelize.js Document : http://docs.sequelizejs.com/en/v3/
文字
前置作業
▸install sequelize-cli :
▸nam install sequelize-cli -g
▸ npm install --save sequelize-cli
▸node_modules/.bin/sequelize init
▸node_modules/.bin/sequelize init —force
▸會把你原本的config/config.json的檔案給複寫,
▸產生一個models/index.js的檔案
▸產生seeders
▸github : structuring-models-with-sequelizejs
今天的故事
▸放關聯圖
說故事之前...先給資料
SEED
▸給預設資料
~/structuring-models-with-sequelizejs/example > node_modules/.bin/sequelize db:seed seedToy
~/structuring-models-with-sequelizejs/example > node_modules/.bin/sequelize db:seed seedCat.
~/structuring-models-with-sequelizejs/example > node_modules/.bin/sequelize db:seed seedOwn
~/structuring-models-with-sequelizejs/example > node_modules/.bin/sequelize db:seed seedCatI
~/structuring-models-with-sequelizejs/example > node_modules/.bin/sequelize db:seed seedCatT
準備故事的材料...注意事項
開發初期 SYNC TABLE? DROP TABLE?
▸在models/index.js裡面加入
▸sequelize.sync({ force: true, match: /family/ });
▸不需要的時候可以把裡面的option ,”{ force: true, match:
/family/ }” 註解掉
準備故事的材料
DEFINE TABLE
▸欄位設定
▸allowNull
▸autoIncrement
▸primaryKey
▸defaultValue
▸type
▸unique
▸timestamp
▸paranoid
▸注意設定
▸associate
▸freezeTable: true
▸tableName
開始說故事
簡單的CRUD
▸create
▸find
▸update
▸destroy
▸force:true // “paranoid” state
開始說故事
▸BulkCreate
▸updateOnDuplicate
▸如果資料已經存在的話,會做update的動作
▸RAW QUERY
▸複雜的sql script
▸ORM辦不到
▸TRANSACTION
▸禁止同時對資料表做動作
開始說故事
INNER JOIN
▸找出有被領養的貓咪資料
SELECT `Owner`.`id`, `Owner`.`name`, `CatInfos`.`id` AS `CatInfos.id`, `CatInfos`.`nickName
開始說故事
LEFT OUTER JOIN
▸找出貓咪的領養資料
SELECT `Owner`.`id`, `Owner`.`name`, `CatInfos`.`id` AS `CatInfos.id`, `CatInfos`.`nickName
新手常犯的錯誤
有雷
▸id屬性設成AUTO_INCREMENT
▸utc時間的時差問題
▸hasMany association的limit問題

More Related Content

What's hot

Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程
洧杰 廖
 
打造維基實驗基地 - mediawiki快速架站
打造維基實驗基地 - mediawiki快速架站打造維基實驗基地 - mediawiki快速架站
打造維基實驗基地 - mediawiki快速架站
Shoichi Chou
 
CP 值很高的 Gulp
CP 值很高的 GulpCP 值很高的 Gulp
CP 值很高的 Gulp
Yvonne Yu
 
北護樂學程式冬令營 2017
北護樂學程式冬令營 2017北護樂學程式冬令營 2017
北護樂學程式冬令營 2017
Hamilton Wong
 
Vuebms 前端技術架構
Vuebms 前端技術架構Vuebms 前端技術架構
Vuebms 前端技術架構
Chi-wen Sun
 
Node.js 進攻桌面開發
Node.js 進攻桌面開發Node.js 進攻桌面開發
Node.js 進攻桌面開發
Fred Chien
 
Node.js從無到有 基本課程
Node.js從無到有 基本課程Node.js從無到有 基本課程
Node.js從無到有 基本課程Simon Su
 
Honey's Data Dinner#7 webpack 包達人(入門)
Honey's Data Dinner#7 webpack 包達人(入門)Honey's Data Dinner#7 webpack 包達人(入門)
Honey's Data Dinner#7 webpack 包達人(入門)
beehivedata
 
App house
App houseApp house
App house
Fred Chien
 
Java script 全面逆襲!使用 node.js 打造桌面環境!
Java script 全面逆襲!使用 node.js 打造桌面環境!Java script 全面逆襲!使用 node.js 打造桌面環境!
Java script 全面逆襲!使用 node.js 打造桌面環境!
Fred Chien
 
Grunt
Grunt Grunt
Grunt
lylijincheng
 
GNU Build System
GNU Build SystemGNU Build System
GNU Build System
imacat .
 
webpack 入門
webpack 入門webpack 入門
webpack 入門
Anna Su
 
Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1
modou li
 
Koubei banquet 34
Koubei banquet 34Koubei banquet 34
Koubei banquet 34Koubei UED
 
Non-MVC Web Framework
Non-MVC Web FrameworkNon-MVC Web Framework
Non-MVC Web Framework
Fred Chien
 
NodeJS基礎教學&簡介
NodeJS基礎教學&簡介NodeJS基礎教學&簡介
NodeJS基礎教學&簡介
GO LL
 
MySQL快速入门与提高
MySQL快速入门与提高MySQL快速入门与提高
MySQL快速入门与提高
mysqlpub
 
Docker 101
Docker 101Docker 101
Docker 101
Bryan Yang
 
Node js实践
Node js实践Node js实践
Node js实践
jay li
 

What's hot (20)

Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程
 
打造維基實驗基地 - mediawiki快速架站
打造維基實驗基地 - mediawiki快速架站打造維基實驗基地 - mediawiki快速架站
打造維基實驗基地 - mediawiki快速架站
 
CP 值很高的 Gulp
CP 值很高的 GulpCP 值很高的 Gulp
CP 值很高的 Gulp
 
北護樂學程式冬令營 2017
北護樂學程式冬令營 2017北護樂學程式冬令營 2017
北護樂學程式冬令營 2017
 
Vuebms 前端技術架構
Vuebms 前端技術架構Vuebms 前端技術架構
Vuebms 前端技術架構
 
Node.js 進攻桌面開發
Node.js 進攻桌面開發Node.js 進攻桌面開發
Node.js 進攻桌面開發
 
Node.js從無到有 基本課程
Node.js從無到有 基本課程Node.js從無到有 基本課程
Node.js從無到有 基本課程
 
Honey's Data Dinner#7 webpack 包達人(入門)
Honey's Data Dinner#7 webpack 包達人(入門)Honey's Data Dinner#7 webpack 包達人(入門)
Honey's Data Dinner#7 webpack 包達人(入門)
 
App house
App houseApp house
App house
 
Java script 全面逆襲!使用 node.js 打造桌面環境!
Java script 全面逆襲!使用 node.js 打造桌面環境!Java script 全面逆襲!使用 node.js 打造桌面環境!
Java script 全面逆襲!使用 node.js 打造桌面環境!
 
Grunt
Grunt Grunt
Grunt
 
GNU Build System
GNU Build SystemGNU Build System
GNU Build System
 
webpack 入門
webpack 入門webpack 入門
webpack 入門
 
Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1
 
Koubei banquet 34
Koubei banquet 34Koubei banquet 34
Koubei banquet 34
 
Non-MVC Web Framework
Non-MVC Web FrameworkNon-MVC Web Framework
Non-MVC Web Framework
 
NodeJS基礎教學&簡介
NodeJS基礎教學&簡介NodeJS基礎教學&簡介
NodeJS基礎教學&簡介
 
MySQL快速入门与提高
MySQL快速入门与提高MySQL快速入门与提高
MySQL快速入门与提高
 
Docker 101
Docker 101Docker 101
Docker 101
 
Node js实践
Node js实践Node js实践
Node js实践
 

Viewers also liked

Simple case using WebP
Simple case using WebPSimple case using WebP
Simple case using WebP
Macy Kung
 
Coinx ppt Arabic - UAE - KSA
Coinx ppt Arabic - UAE - KSACoinx ppt Arabic - UAE - KSA
Coinx ppt Arabic - UAE - KSA
COINX TRADING LTD
 
project
projectproject
project
RAMKI KVL
 
Policy, plan, and implementation
Policy, plan, and implementationPolicy, plan, and implementation
Policy, plan, and implementation
Mohammad Moosa
 
25 Most Romantic Cities In The World
25 Most Romantic Cities In The World25 Most Romantic Cities In The World
25 Most Romantic Cities In The World
Rayna Tours
 
Online Social media & Mobile marketing
Online Social media & Mobile marketingOnline Social media & Mobile marketing
Online Social media & Mobile marketing
Chitranshu Shukla
 
The carnival foods in italy by giorgia olivieri,claudia guxha, myriam leonard...
The carnival foods in italy by giorgia olivieri,claudia guxha, myriam leonard...The carnival foods in italy by giorgia olivieri,claudia guxha, myriam leonard...
The carnival foods in italy by giorgia olivieri,claudia guxha, myriam leonard...
robydellem
 
Business network group
Business network groupBusiness network group
Business network group
Network Professionals Inc.
 
2 a tubos e acessorios - copy
2 a tubos e acessorios - copy2 a tubos e acessorios - copy
2 a tubos e acessorios - copy
zoulouwe
 
Transcon Triumph Phase I Brochure - Zricks.com
Transcon Triumph Phase I Brochure - Zricks.comTranscon Triumph Phase I Brochure - Zricks.com
Transcon Triumph Phase I Brochure - Zricks.com
Zricks.com
 
Presentación etwinning
Presentación etwinningPresentación etwinning
Presentación etwinning
María Nicasio Ruiz de Temiño
 
3Com 3C13633
3Com 3C136333Com 3C13633
3Com 3C13633
savomir
 
Анна Абрамова. Знакомство с Archimate. Для встречи сообщества аналитиков Санк...
Анна Абрамова. Знакомство с Archimate. Для встречи сообщества аналитиков Санк...Анна Абрамова. Знакомство с Archimate. Для встречи сообщества аналитиков Санк...
Анна Абрамова. Знакомство с Archimate. Для встречи сообщества аналитиков Санк...
Anna Abramova
 
Mobile Web Apps
Mobile Web AppsMobile Web Apps
Mobile Web Apps
Athhar Ahamed
 
Annual status of education report 2013 national
Annual status of education report 2013  nationalAnnual status of education report 2013  national
Annual status of education report 2013 national
Mohammad Moosa
 
Twice Engineering
Twice EngineeringTwice Engineering
Twice Engineering
Min Yun Kyung
 

Viewers also liked (17)

Simple case using WebP
Simple case using WebPSimple case using WebP
Simple case using WebP
 
Coinx ppt Arabic - UAE - KSA
Coinx ppt Arabic - UAE - KSACoinx ppt Arabic - UAE - KSA
Coinx ppt Arabic - UAE - KSA
 
project
projectproject
project
 
Policy, plan, and implementation
Policy, plan, and implementationPolicy, plan, and implementation
Policy, plan, and implementation
 
25 Most Romantic Cities In The World
25 Most Romantic Cities In The World25 Most Romantic Cities In The World
25 Most Romantic Cities In The World
 
Online Social media & Mobile marketing
Online Social media & Mobile marketingOnline Social media & Mobile marketing
Online Social media & Mobile marketing
 
The carnival foods in italy by giorgia olivieri,claudia guxha, myriam leonard...
The carnival foods in italy by giorgia olivieri,claudia guxha, myriam leonard...The carnival foods in italy by giorgia olivieri,claudia guxha, myriam leonard...
The carnival foods in italy by giorgia olivieri,claudia guxha, myriam leonard...
 
Business network group
Business network groupBusiness network group
Business network group
 
Bez názvu 1
Bez názvu 1Bez názvu 1
Bez názvu 1
 
2 a tubos e acessorios - copy
2 a tubos e acessorios - copy2 a tubos e acessorios - copy
2 a tubos e acessorios - copy
 
Transcon Triumph Phase I Brochure - Zricks.com
Transcon Triumph Phase I Brochure - Zricks.comTranscon Triumph Phase I Brochure - Zricks.com
Transcon Triumph Phase I Brochure - Zricks.com
 
Presentación etwinning
Presentación etwinningPresentación etwinning
Presentación etwinning
 
3Com 3C13633
3Com 3C136333Com 3C13633
3Com 3C13633
 
Анна Абрамова. Знакомство с Archimate. Для встречи сообщества аналитиков Санк...
Анна Абрамова. Знакомство с Archimate. Для встречи сообщества аналитиков Санк...Анна Абрамова. Знакомство с Archimate. Для встречи сообщества аналитиков Санк...
Анна Абрамова. Знакомство с Archimate. Для встречи сообщества аналитиков Санк...
 
Mobile Web Apps
Mobile Web AppsMobile Web Apps
Mobile Web Apps
 
Annual status of education report 2013 national
Annual status of education report 2013  nationalAnnual status of education report 2013  national
Annual status of education report 2013 national
 
Twice Engineering
Twice EngineeringTwice Engineering
Twice Engineering
 

Similar to Sequelize實務分享

nodejs在微博前端开发中的应用
nodejs在微博前端开发中的应用nodejs在微博前端开发中的应用
nodejs在微博前端开发中的应用
dong yuwei
 
180518 ntut js and node
180518 ntut js and node180518 ntut js and node
180518 ntut js and node
Peter Yi
 
Clojure cnclojure-meetup
Clojure cnclojure-meetupClojure cnclojure-meetup
Clojure cnclojure-meetupsunng87
 
02.uliweb开发入门
02.uliweb开发入门02.uliweb开发入门
02.uliweb开发入门
modou li
 
Kissy design
Kissy designKissy design
Kissy design
yiming he
 
前端框架發展
 前端框架發展 前端框架發展
前端框架發展
Chi-wen Sun
 
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
Chu-Siang Lai
 
SeaJS - 前端模块化开发探索与网站性能优化实践
SeaJS - 前端模块化开发探索与网站性能优化实践SeaJS - 前端模块化开发探索与网站性能优化实践
SeaJS - 前端模块化开发探索与网站性能优化实践lifesinger
 
一拍一产品背后的故事(React实战)
一拍一产品背后的故事(React实战)一拍一产品背后的故事(React实战)
一拍一产品背后的故事(React实战)
Kejun Zhang
 
模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京
Joseph Chiang
 
Cognos8.3安装配置For Db2
Cognos8.3安装配置For Db2Cognos8.3安装配置For Db2
Cognos8.3安装配置For Db2
Franky Lao
 
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
 Continuous Delivery Workshop with Ansible x GitLab CI (5th) Continuous Delivery Workshop with Ansible x GitLab CI (5th)
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
Chu-Siang Lai
 
Continuous Delivery Workshop with Ansible x GitLab CI
Continuous Delivery Workshop with Ansible x GitLab CIContinuous Delivery Workshop with Ansible x GitLab CI
Continuous Delivery Workshop with Ansible x GitLab CI
Chu-Siang Lai
 
Docker
DockerDocker
Docker
旭 張
 
淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle
Justin Lin
 
認識那條鯨魚 Docker 初探
認識那條鯨魚   Docker 初探認識那條鯨魚   Docker 初探
認識那條鯨魚 Docker 初探
仲昀 王
 
KISSY_Component
KISSY_ComponentKISSY_Component
KISSY_Componentyiming he
 
Javascript autoload
Javascript autoloadJavascript autoload
Javascript autoloadjay li
 
JavaScript Code Quality
JavaScript Code QualityJavaScript Code Quality
JavaScript Code Quality
Joseph Chiang
 
twMVC#42 Windows容器導入由0到1
twMVC#42 Windows容器導入由0到1twMVC#42 Windows容器導入由0到1
twMVC#42 Windows容器導入由0到1
twMVC
 

Similar to Sequelize實務分享 (20)

nodejs在微博前端开发中的应用
nodejs在微博前端开发中的应用nodejs在微博前端开发中的应用
nodejs在微博前端开发中的应用
 
180518 ntut js and node
180518 ntut js and node180518 ntut js and node
180518 ntut js and node
 
Clojure cnclojure-meetup
Clojure cnclojure-meetupClojure cnclojure-meetup
Clojure cnclojure-meetup
 
02.uliweb开发入门
02.uliweb开发入门02.uliweb开发入门
02.uliweb开发入门
 
Kissy design
Kissy designKissy design
Kissy design
 
前端框架發展
 前端框架發展 前端框架發展
前端框架發展
 
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
 
SeaJS - 前端模块化开发探索与网站性能优化实践
SeaJS - 前端模块化开发探索与网站性能优化实践SeaJS - 前端模块化开发探索与网站性能优化实践
SeaJS - 前端模块化开发探索与网站性能优化实践
 
一拍一产品背后的故事(React实战)
一拍一产品背后的故事(React实战)一拍一产品背后的故事(React实战)
一拍一产品背后的故事(React实战)
 
模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京
 
Cognos8.3安装配置For Db2
Cognos8.3安装配置For Db2Cognos8.3安装配置For Db2
Cognos8.3安装配置For Db2
 
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
 Continuous Delivery Workshop with Ansible x GitLab CI (5th) Continuous Delivery Workshop with Ansible x GitLab CI (5th)
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
 
Continuous Delivery Workshop with Ansible x GitLab CI
Continuous Delivery Workshop with Ansible x GitLab CIContinuous Delivery Workshop with Ansible x GitLab CI
Continuous Delivery Workshop with Ansible x GitLab CI
 
Docker
DockerDocker
Docker
 
淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle淺談 Groovy 與 Gradle
淺談 Groovy 與 Gradle
 
認識那條鯨魚 Docker 初探
認識那條鯨魚   Docker 初探認識那條鯨魚   Docker 初探
認識那條鯨魚 Docker 初探
 
KISSY_Component
KISSY_ComponentKISSY_Component
KISSY_Component
 
Javascript autoload
Javascript autoloadJavascript autoload
Javascript autoload
 
JavaScript Code Quality
JavaScript Code QualityJavaScript Code Quality
JavaScript Code Quality
 
twMVC#42 Windows容器導入由0到1
twMVC#42 Windows容器導入由0到1twMVC#42 Windows容器導入由0到1
twMVC#42 Windows容器導入由0到1
 

Sequelize實務分享