01.js

/**
*最先的后台语言是Asp(微软的),
*/
var express = require("express");
//数据库引用
var MongoClient = require('mongodb').MongoClient;
var assert = require('assert');//调试用的:assert.equal(null,err);出错停止执行下面语句 var app = express(); //数据库连接的地址,最后的斜杠表示数据库名字,数据库不存在会创建
var shujukuURL = 'mongodb://localhost:27017/itcast'; app.get("/",function(req,res){
//连接数据库,这是一个异步的操作
MongoClient.connect(shujukuURL, function(err, db) {
if(err){
res.send("数据库连接失败");
return;
}
res.write("恭喜,数据库已经成功连接 \n");
db.collection("teacher").insertOne({"name":"哈哈"},function(err,result){
if(err){
res.send("数据库写入失败");
return;
}
res.write("恭喜,数据已经成功插入");
res.end();
//关闭数据库
db.close();
});
});
}); app.listen(3000);

02.js

/**
* Created by Danny on 2015/9/23 17:24.
*/
var express = require("express");
var MongoClient = require('mongodb').MongoClient;
var assert = require('assert'); var app = express(); app.set("view engine","ejs"); //数据库连接的地址,最后的斜杠表示数据库名字
var shujukuURL = 'mongodb://localhost:27017/itcast'; app.get("/",function(req,res){
//先连接数据库,对数据库的所有操作,都要写在他的回调函数里面。
MongoClient.connect(shujukuURL, function(err, db) {
if(err){
//res.write("数据库连接失败");
return;
}
//res.write("恭喜,数据库已经成功连接 \n");
//查询数据库,cursor游标,游标可以用each方法遍历
//每次表示一条document
var result = [];
var cursor = db.collection('teacher').find( );
cursor.each(function(err, doc) {
if(err){
//res.write("游标遍历错误");
return;
}
if (doc != null) {
result.push(doc);
} else {
//console.log(result);
//遍历完毕
db.close();
res.render("index",{
"result" : result
});
}
});
});
}); app.get("/add",function(req,res){
res.render("add");//add页面
}); app.get("/tijiao",function(req,res){ //得到参数
var name = req.query.name;
var age = req.query.age;
var yuwenchengji = req.query.yuwenchengji;
var shuxuechengji = req.query.shuxuechengji; MongoClient.connect(shujukuURL, function(err, db) {
if(err){
console.log("数据库连接失败");
return;
} db.collection("teacher").insertOne({
"name" : name,
"age" : age,
"score" : {
"shuxue" : shuxuechengji,
"yuwen" : yuwenchengji
}
},function(err,result){
if(err){
console.log("数据库写入失败");
return;
}
res.send("恭喜,数据已经成功插入");
res.end();
//关闭数据库
db.close();
});
});
}); app.listen(3000);

03.js

var express = require("express");
var app = express();
var MongoClient = require('mongodb').MongoClient; app.get("/",function(req,res){
//url就是数据库的地址。/表示数据库
//假如数据库不存在,没有关系,程序会帮你自动创建一个数据库
var url = 'mongodb://localhost:27017/haha';
//连接数据库,每个用户请求来就打开数据库最后又关闭数据库(php也是每次打开数据库后关闭数据库)
MongoClient.connect(url, function(err, db) {
//回调函数表示连接成功做的事情,db参数就是连接上的数据库实体
if(err){
console.log("数据库连接失败");
return;
}
console.log("数据库连接成功");
//插入数据,集合如果不存在,也没有关系,程序会帮你创建
db.collection('student').insertOne({//生成的id前几位是时间戳后面是机器码,全球唯一
"name" : "哈哈",
"age" : parseInt(Math.random() * 100 + 10)
}, function(err, result) {
if(err){
console.log("插入失败");
return;
}
//插入之后做的事情,result表示插入结果。
//console.log(result);
res.send(result);
db.close();
});
});
}); app.listen(3000);

分页:

一、数据库
分页,想想我们的百度百家Ajax案例,当时调用了百度的JSON,有一个参数叫做page=3,生成的JSON不一样。
这个就是分页,就是我们想寻找所有的新闻,但是是位于第3页的新闻。那么有两种做法:
1) 错误的做法: 就是讲所有的result都读取到数组,然后进行数据操作,进行分页;
2) 正确的做法: 就是真的在数据库中,只读取这么多内容。 错误的,我们试图每次都读取全部数据,但是这样开销很大。
1 var a = [];
2 db.find("student",{},function(err,result){
3 for(var i = 10 * page ; i < 10 * (page + 1) ; i++){
4 a.push(result[i]);
5 }
6 res.send(a);
7 }); 所以,mongodb提供了傻傻的两个函数。
limit():读取的条数, skip():跳过多少条
加入,第一页是page=0。每页10条,所以当前页的查询语句
1db.student.find({}).limit(10).skip(page*10)
数据总数怎么得到?
shell中
1db.student.stats().count;

node13---node使用mongodb的更多相关文章

  1. 在亚马逊amazon的AWS上安装Node和MongoDB服务器

    在亚马逊amazon的AWS上安装Node和MongoDB服务器 在建立AWS上账号.创建EC2 ,用putty链接上之后,就可以用下面的方法开始安装. !!! 如果不是是自己建立的EC2, 而是由B ...

  2. 8 步搭建 Node.js + MongoDB 项目的自动化持续集成

    任何事情超过 90 秒就应该自动化,这是程序员的终极打开方式.Automating shapes smarter future. 这篇文章中,我们通过创建一个 Node.js + MongoDB 项目 ...

  3. 《Node.js+MongoDB+AngularJS Web开发》读书笔记及联想

    总体介绍 <Node.js+MongoDB+AngularJS Web开发>,于2015年6月出版,是一本翻译过来的书,原书名为<Node.js,MongoDB and Angula ...

  4. Node.JS + MongoDB技术浅谈

    看到一个Node.JS + MongoDB的小样例,分享给大家.魔乐科技软件学院(www.mldnjava.cn)的讲座 Node.JS + MongoDB技术讲座          云计算 +大数据 ...

  5. Node+Express+MongoDB + Socket.io搭建实时聊天应用

    Node+Express+MongoDB + Socket.io搭建实时聊天应用 前言 本来开始写博客的时候只是想写一下关于MongoDB的使用总结的,后来觉得还不如干脆写一个node项目实战教程实战 ...

  6. AngularJS + Node.js + MongoDB开发

    AngularJS + Node.js + MongoDB开发的基于位置的通讯录(by vczero) 一.闲扯 有一天班长说了,同学们希望我开发一个可以共享位置的通讯录,于是自己简单设计了下功能.包 ...

  7. node.js + mongodb

    node.js + mongodb 这次内容是结合bootstrap把登陆注册做好,还有就是express的中间件等问题. 看这篇博客之前建议先看我上篇写的那篇博客http://www.cnblogs ...

  8. 基于react全家桶+antd-design+webpack2+node+express+mongodb开发的前后台博客系统

    很久没更新博客,最近也有点忙,然后业余时间搞了一个比较完整基于react全家桶+antd-design+webpack2+node+express+mongodb开发的前后台博客系统的流程系统,希望对 ...

  9. 用Node.JS+MongoDB搭建个人博客(页面模板)(五)(结束)

    <差不多先生> 我是差不多先生,我的差不多是天生.也代表我很天真,也代表我是个闲人.这差不多的人生,总是见缝插针. 求学的道路上总是孤独的,即使别人不理解我,认为我是奇葩!但没关系,我会坚 ...

  10. node.js+mongodb 爬虫

    demo截图: 本demo爬瓜子二手车北京区的数据 (注:需要略懂 node.js / mongodb 不懂也没关系 因为我也不懂啊~~~) 之所以选择爬瓜子二手车网站有两点: 一.网站无需登录,少做 ...

随机推荐

  1. .NET开源的背后:是无奈,还是顺应潮流?

    摘要:微软.NET的开源,让很多开发者欣喜若狂.同一时候也有很多人好奇其背后的故事,过去视开源为癌症的微软为什么会突然有这一举措,是出于无奈,还是顺应潮流,而这当中的种种也许能够用文中的六个观点来说明 ...

  2. 在阿里云的iis上安装php扩展

    具体参照http://jingyan.baidu.com/article/11c17a2c5ce349f447e39d6d.html

  3. nginx令牌限制并发

    http{ limit_req_zone $binary_remote_addr zone=req_one:10m rate=100r/s; server { listen 8080; server_ ...

  4. SQL Server 查询所有包含某文本的存储过程、视图、函数

    •  方法一:查询所有包含某文本的存储过程.视图.函数 SELECT * from sysobjects o, syscomments s where o.id = s.id AND text LIK ...

  5. div position:fixed后,水平居中的问题

    .div{position:fixed;margin:auto;left:0; right:0; top:0; bottom:0;width:200px; height:150px;}

  6. Eclipse插件Lambok,实现自动生成Java代码

    1.下载Lombok.jar http://projectlombok.googlecode.com/files/lombok.jar 2.运行Lombok.jar: java -jar  D:\00 ...

  7. 洛谷P3327 [SDOI2015]约数个数和(莫比乌斯反演)

    题目描述 设d(x)为x的约数个数,给定N.M,求 \sum^N_{i=1}\sum^M_{j=1}d(ij)∑i=1N​∑j=1M​d(ij) 输入输出格式 输入格式: 输入文件包含多组测试数据.第 ...

  8. MySQL中的存储函数和存储过程的简单示例

    存储函数 定义 CREATE FUNCTION `fn_sum`(`a` int,`b` int) RETURNS int(11) BEGIN RETURN a + b; END 调用 Navicat ...

  9. 实现点击EditText登录时,界面上移避免键盘遮挡界面

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&quo ...

  10. SQL Server中怎样可以从SELECT语句的结果集中删除重复行

    首先要分析出现重复记录的原因,是不是有一些where条件没有加上,把该加的条件都加上如果还有结果集重复,考虑以下方法去重: 结果集中去除重复行可以使用函数[distinct]也可以使用分组语句[gro ...