node+express+mongodb初體驗

來源:互聯網
上載者:User

標籤:

  從去年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初體驗

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.