iT邦幫忙

DAY 7
0

網頁設計師指南——從前端到後端系列 第 7

網頁設計師指南——從前端到後端(七)MongoDB 和 Mongoose

在前端「切板」完成之後,我們當然不能滿足於畫面上的假資料,所以我們開始要準備讓我們的網站能存取真實的資料了。所以我們要開始引進資料庫來保存我們的資料了。我們的資料庫選擇是 MongoDB。

為什麼是 MongoDB呢?因為 MongoDB使用 JavaScript 的語法來存取資料,而不是 SQL 語法。例如

db.users.find()
db.users.insert()

這跟選擇 node.js 作我們的後端是一樣的,讓我們省下學習語言的時間。更重要的是,MongoDB 是一個 NoSQL的資料庫,可以用比較直覺的方式儲存資料,不像傳統的 SQL 資料庫,光是學習正規化與關聯資料就要一段時間。

如果你還沒有使用過,可以到 http://www.mongodb.org/downloads 下載並且安裝。

安裝好之後,接著我們在 node.js 這邊要安裝 Mongoose ,來作我們的 App 與 MongoDB 之間的橋樑。Mongoose 是一個在 node.js 上存取 MongoDB 的工具,讓你可以建立資料的 schema,幫助你對資料做 validation,還有其他方便的工具。

安裝 mongoose 是透過 npm

npm install mongoose --save

安裝好後,我們新增 /model/artwork.js 來寫我們作品資料的 schema

var mongoose = require( 'mongoose' )
  , Schema   = mongoose.Schema
  , ObjectId = mongoose.Schema.Types.ObjectId

var schema = new Schema({
    title     : { type: String },
    content   : { type: String },
    picture   : { type: String },
    updated_at: { type: Date,  default: Date.now },
});

mongoose.model( 'Artwork',  schema );

然後再新增一個 /model/index.js 來寫連線的指令並統一require 全部的 model

require('./artwork')

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/dribbble-clone');

var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));

最後在 app.js 裡 require('./models')

做完這些事情後,就可以到一個 route 之中試試

Artwork
    .find()
    .exec(function(err, result){
      console.log(result)
    })

如果 result 有出現 [](空陣列),就代表我們成功了!


上一篇
網頁設計師指南——從前端到後端(六)Jade 和 Stylus
下一篇
網頁設計師指南——從前端到後端(八)上傳檔案
系列文
網頁設計師指南——從前端到後端15

尚未有邦友留言

立即登入留言