標籤:
從去年11月份到現在,一直想去學習nodejs,在這段時間體驗了gulp、grunt、yeomen,fis,但是對於nodejs深入的去學習,去開發項目總是斷斷續續。
今天花了一天的時間,去瞭解整理整個學習思路,以下是我的學習分享,是入門級學習體驗適合node+mongodb開發小白,node已玩過很久的大神這篇文章可能不適合。
開篇來個例子:
用戶端表單頁面:
<!DOCTYPE HTML><html lang="en-US"><head> <meta charset="UTF-8"> <title>表單頁面</title></head><body> <form action="http://localhost:3000/"> <input type="text" name="title"/> <textarea name="text" id="" cols="30" rows="10"></textarea> <input type="submit" /> </form></body></html>
伺服器的頁面:
var http = require("http");var open = require("child_process");var querystring = require("querystring");var server = http.createServer(function(req,res){ var post = ‘‘; req.on(‘data‘,function(chunk){ post += chunk; }); req.on(‘end‘,function(){ post = querystring.parse(post); res.writeHead(200,{"Content-Type":"text/html;charset=UTF-8"}); res.write(post.title); res.write(post.text); res.end(); });}).listen(3000,‘127.0.0.1‘);open.exec("start http://127.0.0.1:3000");
這個一個簡單的例子,我們實現前台表單提交,後台擷取資料。
通過這個簡單的例子,我們可能想要做更複雜的的項目,那我們該如何下手呢,node+express+mongodb:
第一部分,基本知識點概要
express--一個簡潔而靈活的 node.js Web應用程式框架
mongodb--適合node的關係型資料庫
Mongoose -- Mongoose是MongoDB的一個物件模型工具,既類似ORM,讓NodeJS更容易操作Mongodb資料庫,Mongoose文檔
node模版引擎--ejs,jade node模版引擎的深入探討
Web 模板 Jade、EJS、Handlebars 萬行代碼解釋效率比較,Jade 完敗 https://cnodejs.org/topic/50e70edfa7e6c6171a1d70fa
EJS --http://www.embeddedjs.com/ github文檔 -- https://github.com/tj/ejs
Jade —— 源於 Node.js 的 HTML 範本引擎 http://segmentfault.com/a/1190000000357534
JadeAPI --- http://www.nodeclass.com/api/jade.html#doctype
mongodb --- http://docs.mongodb.org/manual/ 手冊
MongoDB介紹及安裝 -- http://www.cnblogs.com/lipan/archive/2011/03/08/1966463.html
什麼是MongoDB ? --- http://www.w3cschool.cc/mongodb/mongodb-intro.html
第二部分,配置開發安裝包
① 配置package.json --- npm init初始配置package包依賴
{ "name": "pfan", "version": "1.0.1", "description": "pfan", "main": "app.js", "dependencies": { "express": "^4.12.4", "jade": "^1.10.0", "mongoose": "^4.0.3" }, "devDependencies": { "body-parser": "^1.12.4" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC"}
這裡注意:其實配置package.json非常重要,我們寫好所需的相依模組,然後通過 npm install 就可以將參數裡面的依賴一起進行安裝,這裡其實,我們可以在安裝 npm install express generator 產生node項目的目錄結構和相依模組的package.json
②快速建立web mvc 目錄結構
Express是一個輕量級、簡潔、易用的Node.js Web MVC開發架構
全域安裝,可以快速建立目錄結構web mvc目錄結構
npm install -g express-generator
建立 express webmvc目錄結構項目
express devexpress
③安裝node module包依賴npm install express
npm install express //web應用程式框架npm install jade //模版引擎 npm install ejs //模版引擎 npm install mongoose //MongoDB的一個物件模型工具,操作更簡單npm install mongodb //MongoDB的驅動npm install serve-favicon //統一設定網站iconnpm install morgan //HTTP 要求日誌中介軟體npm install cookie-parser //cookie解析器npm install body-parser //定義資料解析器npm install bower -g bower install bootstrap
注意:提出一個問題,就是我們在命令視窗,執行npm install 會執行package.json裡面的包依賴,則我們通過express 項目名稱 這樣去執行,之後在通過npm install 就可以了執行項目案例裡面的依賴,從而安裝整個項目架構
⑤啟動express項目
npm start //貌似現在的項目變成這樣啟動了
第三部分,mongodb的坑 ---mongodb文檔(有些老舊的api以作更改)
1.安裝
首先,安裝mongodb,直接解壓安裝,這裡不再贅述。
下面,我們來講mongodb和node串連起來,在工程檔案夾webapp
下建立data
用來存放資料
cd node/webappmkdir data //建立data檔案用來存放資料
出現這樣的結果,說明串連mongodb成功了!
、
2.建立資料庫
進入mongodb的安裝目錄D:\Program Files\mongodb\bin,敲命令mongo,切換資料庫webapp
cd D:\Program Files\mongodb\bin //進入目錄mongo //執行mongouse webapp //使用webapp資料庫,切換資料庫
插入一個usercollection
表,執行:
db.usercollection.insert({ "username" : "testuser1", "email" : "[email protected]" })
執行,查看插入的資料,是否成功
db.usercollection.find().pretty() //查看插入的資料,是否成功
3.給資料庫配置使用者名稱和密碼
cd D:\Program Files\mongodb\bin //進入目錄mongo //執行mongouse webapp //使用webapp資料庫,切換資料庫db.createUser({createUser:"test",pwd:"test",roles:[{role:"dbOwner",db:"webapp"}]}) //設定使用者名稱密碼,老版本用的是db.addUser注意show users //webapp現在已存在的使用者
最後資源分享:
express例子:https://github.com/pingfanren/express
express與資料庫的例子:https://github.com/pingfanren/expressSimpleBlog
博文:http://www.cnblogs.com/myzhibie/
express例子:https://github.com/nswbmw/N-blog/wiki/_pages
葉小釵博文:http://www.cnblogs.com/yexiaochai/p/3527418.html
node+express+mongodb初體驗