Node.js笔记(七)读取mongoDB的数据并显示
来源:互联网 发布:永恒之塔数据库 编辑:程序博客网 时间:2024/06/05 16:21
虽然以前接触了mysql的内容,但做网站的时候,感觉NoSQL数据库还是绕不过去。
很多书籍上都提到了node.js和MongoDB的配合使用,这里记录一下学习过程。
MongoDB的基本命令:
use dbname 新建或者使用现有数据库show dbs 显示所有数据库show collections 显示所有collection(表)db.collection.find() 打印表中数据
上述命令在mongo控制台中使用,不能在node.js里直接使用
我们想要把数据库里存放的文章列表取出来显示到页面上,离不开模板引擎,我分别使用了ejs和jade两种引擎,用于比较
关于数据库的管理,可以直接管理也可以使用monk提供的中间件,我会分别贴出来
/**app.js 不使用monk**/var express = require('express');var path = require('path');var jade = require('jade');var fs = require('fs');var mongodb = require("mongodb");var app = express();// view engine setupapp.set('views', path.join(__dirname, 'views'));app.set('view engine', 'jade');// not use monkvar server = new mongodb.Server('localhost',27017,{auto_reconnect:true}); var db = new mongodb.Db("mysite",server,{safe:false});//打开数据库连接db.open(function(err,db){ if(err){ console.log(err); return false; } else console.log('connect!');});//连接到collectionvar link = function(db){ return function(req,res){ db.collection('usercollection', {safe:true}, function(err, collection){ /*collection方法用于连接现有表,{safe:true} 选项,当collection不存在的时候报错 createCollection方法用于创建新表,{safe:true} 选项,当collection存在的时候报错 */ if(err){ console.log(err); } else{ console.log('get collection!'); collection.find().toArray(function(err,docs){ console.log('find'); res.render('userlist',{userlist:docs}); }); } }); }}app.get('/',link(db));/*关于路由link方法的位置,合适的做法是放在routes/index文件里面,但方法里的依赖项太多,所以还是塞到了一个文件里*/var list = function(){console.log('hah');}var port = 8080;app.listen(port);console.log('Listening on port ' + port);
/*使用monk*/var express = require('express');var path = require('path');var jade = require('jade');var fs = require('fs');var mongodb = require("mongodb");var monk = require('monk');var db = monk('localhost:27017/mysite');var app = express();// view engine setupapp.set('views', path.join(__dirname, 'views'));app.set('view engine', 'jade');var userlist = function(db) { return function(req, res) { var collection = db.get('usercollection'); collection.find({},{},function(e,docs){ res.render('userlist', { "userlist" : docs });//使用页面引擎渲染 }); };};app.get('/',userlist(db));var list = function(){console.log('hah');}var port = 8080;app.listen(port);console.log('Listening on port ' + port);
可以看出使用monk之后省去了open操作,代码长度也有缩短。
jade和ejs
需要把列表的数据显示在页面上,因此需要页面引擎的渲染
下面是ejs和jade的代码:
/*jade 对缩进控制严格,稍不注意就出错*/extends layoutblock content h1. User List ul each user, i in userlist li a(href="mailto:#{user.email}")= user.username
/*ejs这段模板是在网上找得,还没有试*/<html> <head> <title></title> <style type="text/css"> ul li { list-style: none; width: 200px; padding:5px; background: pink; margin-bottom: 5px;} </style> </head> <body> <ul> <% for(i=0; i< userlist.length; i++) {%> <li><a><%= userlist[i].username %></a></li> <% } %> [html] view plaincopyprint? </yk> </body> </html>
————————————————————————
关于nodejs文章的分类,想一想既不能算是前端,也不能算传统的后端。
但nodejs的出现,对确实是熟悉javascript的前端工程师来说,确实是好消息。因此将其分类为前端,虽有不妥之处,但也凑合。
0 0
- Node.js笔记(七)读取mongoDB的数据并显示
- docker部署node及mongodb,node.js读取mongodb数据以Web显示给用户
- node.js结合edge连接sqlserver数据库读取数据并显示
- node.js平台每5秒钟获取某只股票的数据并录入mongodb
- node.js-mongodb插入数据
- 从零开始学习Node.js例子七 发送HTTP客户端请求并显示响应结果
- Mongodb学习笔记 --- python读取mongodb数据
- Node.js--使用MongoDB存储数据
- Node.js + mongoose + mongodb 学习笔记
- Node.js + MongoDB 后端学习笔记
- express + node.js 入门(4)数据读取接口
- Nodejs学习笔记(十)--- 与MongoDB的交互(mongodb/node-mongodb-native)、MongoDB入门
- [MongoDB学习笔记-02] Node.js连接MongoDB的两种方法
- Node.js文件的读取
- vue( axios )node mongodb 读取数据库
- node.js 调用mongodb的group 函数,并到处到excel 中。
- node.js 读取csv文件数据处理导入mongodb 数据库
- node.js + mongodb 做项目的详解(二)
- 开放平台设计
- 脉动进位计数器
- 学习笔记:C程序基础(1)
- android 蓝牙打印
- jquery ui dialog
- Node.js笔记(七)读取mongoDB的数据并显示
- c++顺序容器vector用法
- 常用排序算法总结
- WebService异步
- android权限大全
- android activity上显示分类后列表
- 01分数规划
- 组合数
- VC6最后适合的MSDN版本 和SDK2003