node13---node使用mongodb

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;
时间: 2024-10-15 21:04:32

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

node.js+mongodb 爬虫

demo截图: 本demo爬瓜子二手车北京区的数据 (注:需要略懂 node.js / mongodb 不懂也没关系 因为我也不懂啊~~~) 之所以选择爬瓜子二手车网站有两点: 一.网站无需登录,少做模拟登录: 二.数据连接没有加密,直接可以用: 网上很多node.js爬虫的栗子 但大多是一个页面的栗子,很少跟数据库结合的 所以我这个栗子是糖炒的 我的基本思路是这样的 1.先在mongodb里存所有页的连接地址的集合 2.在根据这些链接地址 一个一个的把详细信息爬下来 第一步在搜索页找到翻页的规

使用Node.js + MongoDB 构建restful API

很多天前已经翻译了一大半了,今天收收尾~ RESTful API With Node.js + MongoDB Translated By 林凌灵 翻译目的:练练手,同时了解别人的思维方式 原文地址:RESTful API With Node.js + MongoDB 12 Sep 2013 我是一名移动应用开发者,我需要某种后端服务用来频繁地处理用户数据到数据库中.当然,我可以使用后端即服务类的网站(Parse, Backendless, 等等-),(译者:国内比较出名的有Bmob).但自己解

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

总体介绍 <Node.js+MongoDB+AngularJS Web开发>,于2015年6月出版,是一本翻译过来的书,原书名为<Node.js,MongoDB and AngularJS Web Development>,总的来说是一本讲述如何用Javascript进行B/S架构全栈开发的书. 该书主要讲解4种技术(框架),分为6个部分29个章节.4种技术即Node.js.MongoDB.Express.AngularJS,业内称为MEAN:6个部分我个人理解为: 基础(引言).

使用Backbone.js, ExpressJS, node.js, MongoDB的web应用样板工程

这是web应用的一个完整的样板工程,用到了Backbone.js & Marionette, node.js & ExpressJS,MongoDB & Moogoose, Handlebars, Grunt.js, Bower和Browserify! 我建立了一个超级基础的单页面应用程序(SPA),就是一个简单的通讯录管理器, 但麻雀虽小,五脏俱全.我写这篇文章的目的是介绍一下这个应用所用到的整个技术栈:后端,数据,前端,工具和测试.主要包括下面这些技术: 后端: node.js

AngularJS + Node.js + MongoDB开发的基于位置的通讯录(by vczero)

一.闲扯 有一天班长说了,同学们希望我开发一个可以共享位置的通讯录,于是自己简单设计了下功能.包括用户角色.发表微博.共享位置等等.这次也是有点私心的,为了锻炼最近看的angularjs,于是果断选择Node.js + MongoDB + angular.js的方案.当然,开发Node.js的体会越来越深刻.记得,去年leader告诉我说尽量让node的每一个服务只支撑一个业务功能,这样才能更方便的维护.当时特别想把一个Node服务做的特别强大.现在看来leader的做法是对的,我更加倾向于把n

Node与Mongodb实战

在听陈鸿宇的<理想三旬>.好听- 上两篇博文中提到了在Mac下Mongodb的安装与连接,这次我们来看看如何通过Node操作Mongodb. PS:本文中的数据集合采用上篇博文中'test'库中的"mycollection". 一:安装MongoDB包 使用Node中的mongodb模块,需要先安装哦-打开终端,输入如下命令- npm install mongodb 二:数据库连接与断开 1:引入mongodb模块 var mongo = require("mon

node+express+mongodb初体验

从去年11月份到现在,一直想去学习nodejs,在这段时间体验了gulp.grunt.yeomen,fis,但是对于nodejs深入的去学习,去开发项目总是断断续续. 今天花了一天的时间,去了解整理整个学习思路,以下是我的学习分享,是入门级学习体验适合node+mongodb开发小白,node已玩过很久的大神这篇文章可能不适合. 开篇来个例子: 客户端表单页面: <!DOCTYPE HTML> <html lang="en-US"> <head> &

Vue.js实践:一个Node.js+mongoDB+Vue.js的博客内容管理系统

项目来源 以前曾用过WordPress搭建自己的博客网站,但感觉WordPress很是臃肿.所以一直想自己写一个博客内容管理器. 正好近日看完了Vue各个插件的文档,就用着Vue尝试写了这个简约的博客内容管理器(CMS). 嗯,我想完成的功能: 一个基本的博客内容管理器功能,如后台登陆,发布并管理文章等 支持markdown语法实时编辑 支持代码高亮 管理博客页面的链接 博客页面对移动端适配优化 账户管理(修改密码) Demo 登陆后台按钮在页面最下方"站长登陆",可以以游客身份登入后

Node.JS + MongoDB技术浅谈

看到一个Node.JS + MongoDB的小样例,分享给大家.魔乐科技软件学院(www.mldnjava.cn)的讲座 Node.JS + MongoDB技术讲座          云计算 +大数据 = 未来. 在中国的云计算上基本上是一个概念,个人感觉与当初的SOA没有太大的差别,空泛的理论. 中小型开发的未来 = Node.JS + MongoDB解决,并非说Java就没用了. 1.在前面的话 Java技术始终作为高端软件用户的首选,仅仅要从事大型的软件开发,那么Java都是必需要使用的技

Node.js+MongoDB+AngularJS Web开发

这篇是计算机类的优质预售推荐>>>><Node.js+MongoDB+AngularJS Web开发> MEAN全栈工程师首部实战书 从服务器到浏览器基于JavaScript的Web应用程序权威指南 内容完整细致可直接用来入门任一技术 编辑推荐 Node.js是一种领先的服务器端编程环境,MongoDB是最流行的NoSQL数据库,而AngularJS正迅速成为基于MVC的前端开发的领先框架.它们结合在一起使得Web程序员能够完全用JavaScript创建从服务器到客户端