1.mongodb數據庫的下載和集合建立html
咱們在學習get和post參數處理時,都是使用純靜態的操做,node
好比get:咱們點擊的列表數據應該來自數據表而不是靜態寫死的,web
好比post:登陸時,咱們應該匹配數據庫的登陸信息。mongodb
這些都在說明咱們須要有數據庫來存放這些數據信息。shell
數據庫多種多樣,咱們選擇哪個?數據庫
express的爲數據庫的連接提供了多種辦法:http://www.expressjs.com.cn/guide/database-integration.htmlexpress
咱們將使用mongodb做爲數據庫,nodejs的推薦數據庫。json
下載mongo,根據系統下載(http://www.veryhuo.com/down/html/mongodb.html win32位,網速問題,連接不到官網,這能下載這個了,不是最新版本不會影響學習的)。dom
解壓,改變文件夾名字,那個太長了,醜爆了,咱們改爲「mongodb」。編輯器
數據庫已經在咱們的nodejs目錄下了,我是爲了方便找到和本身感受清楚,咱們打開mongodb會看到bin,裏面就是啓動程序等。
下面就是重點了,一點要牢記這些數據庫的基本操做:
cmd窗口到mongodb的bin目錄
咱們到這裏就要開始建立數據庫了,咱們先啓動數據庫和指定數據庫的存儲位置,咱們在nodejs的目錄下,建立「dbme」。
dbme會存放咱們使用的數據庫、表等內容。
命令1:
mongod -dbpath "d:/nodejs/dbme"
執行後,咱們會看到下面:
左下角處,焦點閃動說明啓動正確,其餘可能就是發生錯誤了。
咱們去查看deme這個目錄,發現被建立了數據庫的相關內容:
此命令啓動mongo和指定mongo建立的數據庫存放位置。
這時候切記,運行win+r另開一個窗口(當前窗口表示mongo啓動,是不能關閉和執行其餘的,要想連接到mongo和進行操做,須要另開窗口)。cd到bin目錄,執行
start mongo
執行後,會彈出mongoexe窗口,這個窗口就是咱們數據庫的操做窗口。
若是閃退的話,刪除dbme目錄下的
而後從新啓動,到這裏咱們就已經成功鏈接到數據庫了,下面就是在在mongo中建立數據庫,數據表等內容。
建立數據庫命令:
use xxx
xxx表示數據庫名稱,不存在就會建立這個數據庫
咱們mongo.exe執行命令,
指向blogme數據庫,下面建立集合(mongo的集合至關於數據表)。
建立集合和插入數據命令:
db.news.insert({ "title" : "new1", "text" : "t111111" })
db就表明blogme數據庫,.後面就是集合名稱(數據表名稱),insert命令插入數據,執行便可:
查看集合內容而且顯示命令:
db.news.find().pretty()
顯示了咱們建立的內容,news是結合名稱,是哪一個集合就寫成什麼。
集合只有一條數據,咱們多建立幾個,方便後面的顯示:
news=[{"title":"new2","text":"t2"},{"title":"new3","text":"t3"}]
上面是多條數據插入形式,定義變量和內容,其實就是json的格式,mongo就是以類json格式存儲的。
執行插入命令:
db.news.insert(news);
咱們執行後,運行db.news.find().pretty(),查看結果:
咱們發現mongo.exe就相似編輯器窗口同樣,語法和js也是很像的,這樣感受操做很是的麻煩,咱們須要一個可視化的數據庫編輯器,咱們只是學習使用,這裏就不去安裝了,命令能夠知足咱們的需求。
此時咱們知道了:
建立數據庫命令
建立集合命令
插入數據
多條插入
顯示數據
固然數據的的啓動和設置存放目錄已經知道了,咱們在建立一個集合,
如今數blogme下有2個集合(表),咱們運行下面命令能夠查看全部集合:
show collections
集合除了上面插入和顯示還有刪除,修改等處理,咱們能夠百度查看。
總結:
啓動操做
命令1:mongod -dbpath "d:/Nodejs/nodetest1" 啓動數據庫服務,指定數據庫存放目錄
命令2:start mongo 開始數據庫鏈接
數據庫操做
命令1:use xxx 使用數據庫或這新建
命令2:db.usercollection.insert({ "username" : "testuser1", "email" : "testuser1@testdomain.com" }) 使用集合或新建
命令3:db.usercollection.find().pretty() 顯示集合內容
命令4: show collections 顯示集合列表
咱們打開dbme,咱們發現建立的數據庫可見了: