Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NTU CCSP 2012Fall - Node.js #3 - Mongoose
Search
Steven Su
October 31, 2012
Programming
2
700
NTU CCSP 2012Fall - Node.js #3 - Mongoose
Data Layer / Mongodb / Mongoose
Steven Su
October 31, 2012
Tweet
Share
More Decks by Steven Su
See All by Steven Su
JSDC.TW 2013 Node.js佈署心得
xpsteven
14
1.2k
NTU CCSP 2012Fall - Mobile Web入門 回首網頁開發
xpsteven
3
290
NTU CCSP 2012Fall - Facebook
xpsteven
1
190
NTU CCSP 2012Fall - Node.js #2.1 - Simple File Host Service
xpsteven
2
430
NTU CCSP 2012Fall - Node.js #2 - express.js
xpsteven
3
550
Y! Open Hack 2012 Taiwan
xpsteven
0
170
NTU CCSP 2012Fall - Node.js #2 - Advanced Javascript and Node.js
xpsteven
1
510
Other Decks in Programming
See All in Programming
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
470
XP, Testing and ninja testing
m_seki
3
210
LINEヤフー データグループ紹介
lycorp_recruit_jp
0
1.2k
エンジニア向け採用ピッチ資料
inusan
0
170
「ElixirでIoT!!」のこれまでとこれから
takasehideki
0
370
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
580
Julia という言語について (FP in Julia « SIDE: F ») for 関数型まつり2025
antimon2
3
980
ふつうの技術スタックでアート作品を作ってみる
akira888
0
180
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
340
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
1
580
iOSアプリ開発で 関数型プログラミングを実現する The Composable Architectureの紹介
yimajo
2
220
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
1
500
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
710
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
5
230
Embracing the Ebb and Flow
colly
86
4.7k
How STYLIGHT went responsive
nonsquared
100
5.6k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Faster Mobile Websites
deanohume
307
31k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
The World Runs on Bad Software
bkeepers
PRO
69
11k
How to Ace a Technical Interview
jacobian
277
23k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Transcript
資料層:Mongoose NTU CCSP 2012Fall
目標 • 安裝mongodb • 使用mongo shell • 簡易CRUD
環境 • Windows 7 • Sublime Text 2 • Node.js
0.8.x • Express.js 3.0 • Mongoose.js
MONGODB INSTALL
Step 0: 下載mongodb
Step 0: 下載mongodb
Step 1: 解壓縮移動到C 並命名為mongodb
Step 2: 設定環境
Step 3: 啟動mongod
Step 4: 進入mongo shell
MONGO SHELL
MongoDB • 是一種NoSQL • 不需要資料綱要(Schema-Free) • 允許巢狀資料 • 沒有JOIN 沒有TRANS
• 簡單說就是一個存放JSON的資料庫 所以才 會跟Node.js很合
MongoDB練習 • http://try.mongodb.org/
FIRST LOOK OF MONGOOSE
Step -1: 請先安裝mongoose npm install mongoose -g
Step 0: 產生綱要 1. 產生schema 2. 產生model instance.save(fn(err){}) 儲存 Model.find()
搜尋
Step 0: 產生綱要
Step 1: 更新與刪除 • Model.remove() 刪除所有文件 • instance.remove() 刪除一個文件
Step 2: 綱要進階 • 常用type String, Number, Date, ObjectId •
Array用法 • Embed Docs => Array嵌入物件
CRUD BY EXPRESS+MONGOOSE
Step 0: 建立express專案
Step 1: 修改package.json
Step 2: 安裝套件
Step3: 編輯models/User.js
Step 3: 編輯 app.js • mongoose.connect和 mongoose.createConnection是不 同的 • 前者是模組等級
後者是獨立連線 • 沒有指明連線的model會嘗試使用 並等待模組等級連線建立
Step 4: Create • 編輯route/user.js • 注意callback的例外
Step 4: Create • 編輯view/index.ejs
Step 4.5: 來試試看吧
Step 5: Read • Read包含兩種 • 讀取集合 • 讀取單一物件
Step 6: Update
Step 6: Update • Callback hell很痛苦 • 銀幕在寬都不夠
Step 8: step.js解決cb hell • 解決callback hell • Err可以很帥氣的throw
遺珠之憾 • Population http://mongoosejs.com/docs/populate.html • Middleware http://mongoosejs.com/docs/middleware.html • Advanced Query
http://mongoosejs.com/docs/queries.html • SQL to Mongo mapping http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Map ping+Chart • Step.js https://github.com/creationix/step