江湖險惡,我從來都不輕易留下我的姓名。

憑你的智慧,我唬得了你嗎?

Sails練習之八-連結資料庫

| Comments

各位客官, 終於到了要使用到資料庫的時機了

本章節, Irl nathan介紹了Mongo Db的使用, 以及如何新增Mongo Db到我們的sails專案.

不過因為我現在用的sails是0.11.x的版本, 而Irl兄是0.9.x之前的, 所以一些設定上面都有些不同

Irl老兄的影片連結在這:Building a Sails Application: Ep10 - Changing databases to mongoDB with sails adapters.

我在這邊主要以新版的sails為主. 底下介紹安裝方法

首先, 進去sails的專案, 例如在E:\sails_app\activeityOverload> 輸入

npm install sails-mongo --save

接著npm會下載mongo的程式碼, 若在windows系統, 會預設使用visual studio的C++來compiler,

這邊要注意, sails-mongo在windows系統下, 預設使用visual studio 2013的版本編譯, 若比2013的版本低, 會發生編譯錯誤. 而若版本比2013高, 則需要額外的輸入條件, 底下舉例

版本是visual studio 2013

npm install sails-mongo --save

版本若是大於visual studio 2013, 則需要輸入

npm install sails-mongo --save --msvs_version=2013

PS. 大於Visual Studio 2013的版本我還沒試過

若還有任何問題, 請在google輸入node-gyp v8.h syntax error這幾個關鍵字, 應該有些線索你可以嘗試看看

好的, 基本上只要注意到這些, 應該就沒問題, Mongo Db就順利裝上去了

接下來要設定Sails專案的Mongo Db的檔案

修改兩個檔案, 一個是connection.js,

config\connections.js 修改someMongodbServer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 /***************************************************************************
  *                                                                          *
  * MongoDB is the leading NoSQL database.                                   *
  * http://en.wikipedia.org/wiki/MongoDB                                     *
  *                                                                          *
  * Run: npm install sails-mongo                                             *
  *                                                                          *
  ***************************************************************************/
  someMongodbServer: {
    adapter: 'sails-mongo',
    host: 'localhost',
    port: 27017,
    user: '',
    password: '',
    database: 'activityoverlord'
  },

另一個是models.js

config\models.js 修改connection
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
module.exports.models = {

  /***************************************************************************
  *                                                                          *
  * Your app's default connection. i.e. the name of one of your app's        *
  * connections (see `config/connections.js`)                                *
  *                                                                          *
  ***************************************************************************/
  // connection: 'localDiskDb',
  connection: 'someMongodbServer',
  autoCreatedAt: true,
  autoUpdatedAt: true,
  /***************************************************************************
  *                                                                          *
  * How and whether Sails will attempt to automatically rebuild the          *
  * tables/collections/etc. in your schema.                                  *
  *                                                                          *
  * See http://sailsjs.org/#!/documentation/concepts/ORM/model-settings.html  *
  *                                                                          *
  ***************************************************************************/
   migrate: 'safe'

};

設定好之後, 存檔.

最後我們來安裝Mongo DB, 因為Irl nathan是在Mac OS上面已經裝好, 直接執行就可以了, 我們要在Win7上面裝MongoDB.

開啟cmd

輸入 wmic os get caption 確認 作業系統版本

輸入 wmic os get osarchitecture 確認是幾位元的作業系統

確定完之後,到MongoDb下載相對應的版本.

例如我的作業系統是Win7 64bits, 那就下載Windows 64-bit 2008 R2+.

下載完成, 安裝, 請選Custom, 將安裝路徑裝到C:\MongoDB底下,我是裝到D:\MongoDB,

因為MongoDB預設會裝到C:\Program Files…巴拉巴拉, 太長了, 往後輸入指令不方便, 所以就縮短裝到比較方便找的目錄.

裝完之後, 在MongoDB安裝的那個磁碟區, 例如我裝在D槽, 打開cmd, 輸入md \data\db, 這會在D:\產生data\db的資料夾, 而這個資料夾是MongoDB預設會存取的資料夾.

OK, 接下來使用cmd切換到MongoDB的安裝路徑底下的bin目錄,輸入mongod.exe, MongoDb就啟動啦!

PS: 若你沒有Create \data\db, 那麼你執行mongod.exe就會發生錯誤

若你想要指定其他的資料庫存取目錄, 請在輸入mongod.exe的同時, 加入--dbpath, 例如

D:\MongoDB\bin>mongod.exe --dbpath=D:\MongoDB\data

這樣就可以了!

以上安裝MongoDb的教學, 可參考以下網站

在 Windows 中安裝 MongoDB 資料庫

MongoDB 在 Windows 下安裝配置

window 平台安装 MongoDB

好, 啟動MongoDb之後, 我們就可以切回來Sails專案了

我們重啟Sails, 指令sails lift

接下來我們在瀏覽器輸入http://localhost:1337, 新增使用者

成功之後, 你會發現使用者已經被新增到MongoDb裡面去了, 試一下其他功能如修改, 應該都能正常運作!

今天就上到這邊啦! 下課~~~

Comments