最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js連接MongoDB數(shù)據(jù)庫產(chǎn)生的問題

 更新時間:2017年02月08日 13:56:15   作者:JokerLoveAllen  
Node.js是使用JavaScript 編寫的可以運行在服務(wù)端的JS語言。node.js和mongodb碰撞會產(chǎn)生一系列問題,下面通過本文給大家分享Node.js連接MongoDB數(shù)據(jù)庫,需要的的朋友參考下

NoSQL的代表MongoDB最近大受歡迎,雖然還有一些功能沒有完善,但是并不影響它的大火。

Node.js是使用JavaScript 編寫的可以運行在服務(wù)端的JS語言。

那么,二者碰撞會產(chǎn)生什么樣的火花呢。

今天,我就以一個簡單的例子介紹一下(在本地新建數(shù)據(jù)庫文件并將其內(nèi)容顯示到瀏覽器窗體);

1.準(zhǔn)備部分:所需要的工具IDE為WebStorm,MongoDB,Node.js。

1)首先需要下下載MongoDB并且配置環(huán)境變量(Path  指向安裝目錄)

第一步:建立MongDB服務(wù)輸入命令 mongod.exe --bind_ip 127.0.0.1(本地IP地址) --logpath "D:\M_LOG\mongodb.l
og(日志文件所在地)" --logappend --dbpath "D:\M_DB(數(shù)據(jù)表所在地)" --port 27017(端口號)--serviceName " Mongod(服務(wù)名)" --serviceDisplayName "Mongods(顯示的名稱)" --install

第二步:命令行輸入mongo 進(jìn)入mongoDB環(huán)境;輸入use dbtest(使用dbtest這個數(shù)據(jù)庫,如果沒有會自動創(chuàng)建新的數(shù)據(jù)庫);

輸入db.createCollection("表名字")創(chuàng)建表;

輸入db.表名.insert({"key1":"value1","key2":"value2"});匯創(chuàng)建一條數(shù)據(jù)它并不是嚴(yán)格意義的數(shù)據(jù)庫,所以允許多個不同的key存在;

輸入db.表名.find();查看表里的數(shù)據(jù)

2)下載Node.js 一直下一步即可,它自動包含了一個包管理工具npm.

3)  使用WebStorm新建一個Node.js Express
APP 工程。

4)在WebStorm自帶的命令行進(jìn)入node_moudles目錄下(cd node_moudles)下載的模塊盡量放在此目錄下。

輸入npm install mongodb,下載Node.js連接MongoDB的所需模塊。

5)在自帶的命令行工具輸入npm install ejs。下載ejs模板;

2.代碼部分:

1)找到新建工程目錄下的app.js,將模板替換為ejs模板

// view engine setup 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'ejs');

2)如果app.js沒有監(jiān)聽端口的話則在最后加入

app.listen(3000); 

3) 在項目的views文件夾下新建立三個測試用的ejs文件(新建html文件后綴改為.ejs)

index1.ejs

<!DOCTYPE html> 
<html> 
<head> 
  <title>my index</title> 
  <link rel='stylesheet' href='/stylesheets/style.css' /> 
</head> 
<body> 
<h1>Hello World</h1> 
<p>Welcome to</p> 
<p><a href="login" rel="external nofollow" >登陸</a></p> 
</body> 
</html> 
login.ejs
[html] view plain copy
<!DOCTYPE html> 
<html> 
<head> 
  <title>my login</title> 
  <link rel='stylesheet' href='/stylesheets/style.css' /> 
</head> 
<body> 
<h1>Hello World</h1> 
<p>Welcome to</p> 
<form action="ucenter" method="post"> 
  <p> 
    <span>name:</span> 
    <br> 
    <input id="name" name="name" type="text"> 
  </p> 
  <p> 
    <span>password:</span> 
    <br> 
    <input id="password" name="password" type="password"> 
  </p> 
  <p><input type="submit" value="submit"></p> 
</form> 
<form action="checkall" method="get"> 
  <input type="submit" value="全部"> 
</form> 
</body> 
</html> 

checkinfo.ejs(重點 返回數(shù)據(jù)表信息)

<!DOCTYPE html> 
<html> 
<head> 
  <title>my checklist</title> 
  <link rel='stylesheet' href='/stylesheets/style.css' /> 
</head> 
<body> 
<%= datas %> 
<br/> 
<%= reason %> 
<br/> 
<%for(var i =0;i<datalist.length;i++){%> 
<ol> 
  <li><%=datalist[i]._id%></li> 
  <li> 
    <%= datalist[i].name %> 
    <%= datalist[i].like%> 
  </li> 
  <li> 
    <%= datalist[i].password %> 
    <%= datalist[i].age%> 
    <%= datalist[i].info%> 
  </li> 
</ol> 
<%}%> 
</body> 
</html> 

4)在routes(學(xué)名路由)文件夾下中的index.js中做以下改變

var express = require('express'); 
var router = express.Router(); 
/* 
 var user = require('../bin/app2').user; 
 */ 
var mongo = require('mongodb');// 加載mogodb模塊 
var DB_CONN_STR = 'mongodb://localhost:27017/testdb1';//數(shù)據(jù)庫的地址 
/* GET home page. 處理請求信息*/ 
router.get('/', function (req, res, next) { 
  res.render('index1', {title: 'index1'}); 
}); 
/* login */ 
router.get('/login', function (req, res) { 
  res.render('login', {title: 'login'}); 
}); 
/*驗證用戶是否存在*/ 
var selectData = function (db, str, callback) { // 查找MongoDB是否含有相應(yīng)的集合 
  //連接到表 
  var collection2 = db.collection('user'); 
  collection2.find(str).toArray(function (err, result) { 
    if (err) { 
      console.log('Error:' + err); 
      return; 
    } 
    callback(result); 
  }); 
} 
router.post('/ucenter', function (req, res) {  //為驗證請求添加路由 
  var query = {name: req.body.name, password: req.body.password}; 
    mongo.connect(DB_CONN_STR, function (err, db) { 
      console.log("連接成功!"); 
      selectData(db, query, function (result) { 
        if (result != 0) { 
          console.log(query.name + ": 登陸成功 " + new Date()); 
          res.render('ucenter', {title: 'ucenter'});//跳轉(zhuǎn)到指定頁面 
        } else { 
          console.log(query.name + ": 登陸失敗 " + new Date()); 
          res.redirect('/');//返回當(dāng)前頁面 
        } 
        db.close(); 
      }) 
    }); 
}); 
/*查找所有數(shù)據(jù)*/ 
router.get("/checkall",function (req,res) { 
  mongo.connect(DB_CONN_STR,function (err,db) { 
    var collection = db.collection('user'); 
    collection.find().toArray(function (err,result) { 
      if(err){ 
        console.log('ERROR'+err); 
        res.redirect('/'); 
        return; 
      } 
      console.log(result); 
      res.render('checkinfo',{ 
         datas:"Hello Noder" 
        ,datalist:result 
        ,reason:"由于你長得丑,服務(wù)器拒絕了你這次的訪問" 
      }); 
      db.close(); 
    }); 
  }); 
}) 
module.exports = router; 

3.廢話這么多,重要出結(jié)果了

1)先看看MongoDB數(shù)據(jù)表里的數(shù)據(jù)

2)登錄界面

3)登陸成功

4)網(wǎng)頁返回全部數(shù)據(jù)

以上所述是小編給大家介紹的Node.js連接MongoDB數(shù)據(jù)庫產(chǎn)生的問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 使用upstart把nodejs應(yīng)用封裝為系統(tǒng)服務(wù)實例

    使用upstart把nodejs應(yīng)用封裝為系統(tǒng)服務(wù)實例

    這篇文章主要介紹了使用upstart把nodejs應(yīng)用封裝為系統(tǒng)服務(wù)實例,需要的朋友可以參考下
    2014-06-06
  • Node.js中path.resolve與path.join的區(qū)別與作用詳解

    Node.js中path.resolve與path.join的區(qū)別與作用詳解

    path.resolve和path.join都是屬于path核心模塊下的方法,用來拼接路徑,下面這篇文章主要給大家介紹了關(guān)于Node.js中path.resolve與path.join的區(qū)別與作用的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • Node.js中Bootstrap-table的兩種分頁的實現(xiàn)方法

    Node.js中Bootstrap-table的兩種分頁的實現(xiàn)方法

    這篇文章主要介紹了Node.js中Bootstrap-table的兩種分頁的使用方法,需要的朋友可以參考下
    2017-09-09
  • Yarn的安裝與使用詳細(xì)介紹

    Yarn的安裝與使用詳細(xì)介紹

    不知道大家有沒有覺察到Facebook近年大招頻出。Yarn是Facebook最近發(fā)布的一款依賴包安裝工具。Yarn是一個新的快速安全可信賴的可以替代NPM的依賴管理工具,Yarn正式發(fā)布沒幾天已經(jīng)迅速達(dá)到了數(shù)萬贊,就可以知道大家苦NPM久已。這篇文章將詳細(xì)介紹Yarn的安裝與使用。
    2016-10-10
  • yarn安裝路徑的成功修改并配置環(huán)境

    yarn安裝路徑的成功修改并配置環(huán)境

    Yarn是facebook發(fā)布的一款取代npm的包管理工具,下面這篇文章主要給大家介紹了關(guān)于yarn安裝路徑的成功修改并配置環(huán)境的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • nvm安裝方法以及安裝后node不能使用解決

    nvm安裝方法以及安裝后node不能使用解決

    在我們的日常開發(fā)中經(jīng)常會遇到這種情況,手上有好幾個項目,每個項目的需求不同,進(jìn)而不同項目必須依賴不同版的NodeJS運行環(huán)境,nvm應(yīng)運而生,這篇文章主要給大家介紹了關(guān)于nvm安裝方法以及安裝后node不能使用解決的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • 用NODE.JS中的流編寫工具是要注意的事項

    用NODE.JS中的流編寫工具是要注意的事項

    Nodejs讀寫流流的傳輸過程默認(rèn)是以buffer的形式傳輸?shù)?除非你給他設(shè)置其他編碼形式, 小伙伴可以參考下。
    2016-03-03
  • electron原理,以及electron生成可執(zhí)行文件的方法實例分析

    electron原理,以及electron生成可執(zhí)行文件的方法實例分析

    這篇文章主要介紹了electron原理,以及electron生成可執(zhí)行文件的方法,結(jié)合實例形式分析了electron原理以及electron生成可執(zhí)行文件的具體操作步驟、實現(xiàn)方法與相關(guān)注意事項,需要的朋友可以參考下
    2023-04-04
  • nodejs使用express獲取get和post傳值及session驗證的方法

    nodejs使用express獲取get和post傳值及session驗證的方法

    這篇文章主要介紹了nodejs使用express獲取get和post傳值及session驗證的方法,結(jié)合實例形式分析了nodejs使用express實現(xiàn)獲取get和post傳值及session驗證功能的具體操作步驟與注意事項,需要的朋友可以參考下
    2017-11-11
  • Node.js文件操作方法匯總

    Node.js文件操作方法匯總

    本文給大家匯總了node.js實現(xiàn)文件操作的方法,非常的細(xì)致全面,希望大家能夠喜歡
    2016-03-03

最新評論

大埔县| 称多县| 东兴市| 平阳县| 龙山县| 东莞市| 泊头市| 高雄市| 银川市| 丰镇市| 塔城市| 九龙城区| 霍州市| 孟连| 亚东县| 察哈| 肃宁县| 镇远县| 东阿县| 德保县| 澎湖县| 唐海县| 长宁区| 沁水县| 通城县| 定陶县| 新晃| 柳江县| 兴宁市| 精河县| 常宁市| 板桥市| 齐河县| 阜新市| 治县。| 屯门区| 抚松县| 武汉市| 稷山县| 彭泽县| 鄯善县|