手把手教你開發nodejs微博網站-鏈接數據庫

鏈接數據庫

引子

博客確定是以用戶爲中心,包括用戶的註冊,用戶的登陸,用戶發表留言,對留言進行評價等等功能,因此,天然離不開數據庫。javascript

MongoDB

MongoDB簡介
  1. MongoDB是一個開源的NoSql數據庫,相比mysql那樣的關係型數據庫,它更爲輕巧,靈活,很是適合在數據規模很大,事務性不強的場合下使用php

  2. MongoDB將數據存儲爲一個文檔,數據結構由鍵值對(key=>value)組成。字段值能夠包含其餘文檔,數組及文檔數組java

  3. 相對於mysql這類須要把對象屬性轉換成SQL語句才能保存下來 ,MongoDB這些能夠直接保存JS對象成數據庫的文檔,來看一個MongoDB文檔的示例:node

{
        "_id" : ObjectId( "4f7fe8432b4a1077a7c551e8" ),
        name : 'phping',
        age : 28,
        hobby : ['movies','music','nba']
    }

能夠看到數據格式爲json,所以與javascript的親和性很強,咱們的項目也是使用MongoDB。mysql

MongoD概念解析

mongodb中基本的概念是文檔、集合、數據庫。下表將幫助您更容易理解Mongo中的一些概念:linux

SQL術語/概念 MongoDB術語/概念 解釋/說明
database database 數據庫
table collection 數據庫表/集合
row document 數據庫記錄集合/文檔
column field 數據字段/域
index index 索引
table joins 錶鏈接,mongodb不支持
primary key primary key 主鍵,MongoDB自動將_id字段設置爲主鍵

經過下圖實例咱們也能更好的瞭解Mongo中的一些概念:
圖片描述git

MongoDB安裝

你們能夠針對本身的系統,參考下面的連接嚮導來進行安裝,步驟都是很是的詳細。這裏再也不贅述。github

Robomongo

我使用的MongoDB 可視化管理工具是Robomongo,固然還有其它的可使用,如:MongoChef等。

  • Robomongo
    Robomongo 是一個基於 Shell 的跨平臺開源 MongoDB 管理工具。嵌入了 JavaScript 引擎和 MongoDB mogo 。只要你會使用 mongo shell ,你就會使用 Robomongo。提供語法高亮、自動完成、差異視圖等。

點擊這裏下載

  • 建立鏈接
    下載並安裝成功後點擊左上角的 Create 來建立一個鏈接,給該鏈接起個名字如: localhost,使用默認地址(localhost)和端口(27017)便可,點擊 Save 保存,以下圖:

圖片描述

  • 添加數據
    前面已經簡單的介紹了mongodb中的一些概念,讓咱們使用Robomongo這個圖形化管理工具來添加數據:

  • 點插入文檔:
    圖片描述

  • 會打開一個空白麪板,讓咱們手動寫入要添加的數據:
    圖片描述

  • 寫一個簡單的測試數據以下:
    圖片描述

其中左下角的按鈕能夠用來驗證咱們寫入的數據格式,數據格式無誤後點擊右下角的保存按鈕便可。

  • 查看新增長的文檔:
    圖片描述

  • 這時,在你右邊區域就能夠看到咱們剛纔新增長的數據了:
    圖片描述

使用Mongolass鏈接數據庫

好了,MongoDB安裝成功了,咱們來使用Mongolass鏈接數據庫。

安裝Mongolass
$ npm install mongoose
鏈接MongoDB

首先,咱們須要定義一個鏈接。若是您的應用程序只使用一個數據庫,您應該使用mongoose.connect
若是您須要建立額外的鏈接,使用mongoose.createConnection

這兩種方式鏈接都須要mongodb:// URI,或者主機名字,數據庫名字,端口號,配置項等。

var mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/my_database');
定義一個模型
var mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/my_database');

var Cat = mongoose.model('Cat', { name: String });
訪問一個模型
var mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/my_database');

var Cat = mongoose.model('Cat', { name: String });

var kitty = new Cat({ name: 'Zildjian' });
kitty.save(function (err) {
  if (err) {
    console.log(err);
  } else {
    console.log('meow');
  }
});

更多使用能夠查看官網文檔.

總結

本篇主要講解了我在開發本項目時使用的什麼數據庫,怎麼鏈接數據庫,下節乾貨就來了:用戶註冊功能開發,敬請期待!
工程代碼可從github上下載:https://github.com/phping1/no...

想查看更多文章,請點擊個人博客

相關文章
相關標籤/搜索