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. 【1】按照Django官网,编写一个web app 创建project/配置数据库

    1. Creating a project From the command line, cd into a directory where you'd like to store your code ...

  2. linux删除多行

    光标放到行dd:删除所在行 光标放到行Ndd: 删除所在行下的N行

  3. gwt学习资料

    学习资料: 2 3

  4. 英语发音规则---G字母

    英语发音规则---G字母 一.总结 一句话总结: 1.G发[g]音? bag [bæg] n. 袋:猎获物 go [gəʊ] vi. 走:达到 garden ['gɑːd(ə)n] n. 花园 gla ...

  5. USACO 2.1 Sorting a Three-Valued Sequence

    Sorting a Three-Valued Sequence IOI'96 - Day 2 Sorting is one of the most frequently performed compu ...

  6. EOJ 3124 单词表

    题目描述 提取英文文本中的单词,重复出现的单词只取一个,把它们按照字典顺序排序,建立为一个单词表. 例如:英文文本如下: “ask not what your country can do for y ...

  7. R dataframe 去除行号

    原先的行号是这样的:

  8. mysql中间件研究(tddl atlas cobar sharding-jdbc)

    mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差.下面介绍几款能代替其的mysql开源中间件产品,Atlas ...

  9. VB入门在线视频教程大全学习

    课程目录 9分钟47秒 课时1第一课:怎么编写程序 14分钟1秒 课时1第十七课第1节:文件读写的几种方式 14分钟14秒 课时2第二课:什么是变量和变量类型 19分钟24秒 课时3第三课:变量的声明 ...

  10. oc基础知识

    只在@interface中定义变量的话,你所定义的变量只能在当前的类中访问,在其他类中是访问不了的:而用@property声明的变量可以在外部访问. 用了@property去声明的变量,可以使用“se ...