国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Node.js連接MongoDB數據庫產生的問題

2019-11-19 17:40:52
字體:
來源:轉載
供稿:網友

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

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

那么,二者碰撞會產生什么樣的火花呢。

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

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

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

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

第二步:命令行輸入mongo 進入mongoDB環境;輸入use dbtest(使用dbtest這個數據庫,如果沒有會自動創建新的數據庫);

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

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

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

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

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

4)在WebStorm自帶的命令行進入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沒有監聽端口的話則在最后加入

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(重點 返回數據表信息)

<!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(學名路由)文件夾下中的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';//數據庫的地址 /* 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是否含有相應的集合   //連接到表   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'});//跳轉到指定頁面         } else {           console.log(query.name + ": 登陸失敗 " + new Date());           res.redirect('/');//返回當前頁面         }         db.close();       })     }); }); /*查找所有數據*/ 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:"由于你長得丑,服務器拒絕了你這次的訪問"       });       db.close();     });   }); }) module.exports = router; 

3.廢話這么多,重要出結果了

1)先看看MongoDB數據表里的數據

2)登錄界面

3)登陸成功

4)網頁返回全部數據

以上所述是小編給大家介紹的Node.js連接MongoDB數據庫產生的問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 淮安市| 和顺县| 广安市| 星子县| 沁源县| 盐城市| 塔城市| 叙永县| 克东县| 中卫市| 时尚| 安化县| 贡嘎县| 柘城县| 周至县| 孝感市| 绥滨县| 尉犁县| 闵行区| 大埔区| 扶沟县| 宜城市| 密云县| 云浮市| 沂源县| 汤阴县| 潮安县| 随州市| 手机| 景宁| 永春县| 清新县| 六安市| 滕州市| 云霄县| 常宁市| 通化县| 彝良县| 金寨县| 哈尔滨市| 龙海市|