初学nodejs,涉及内容太多,总找不到如何能处理数据之间的交换、提取,显示。查找众多资料,终于调试成功,为免遗忘,特记录如下:

安装nodejs,mongo数据库在这里不做记录了。

1、编写server.js文件:(C)

var express = require('express');
var app = express();
var path = require('path');
var db = require('./db1.js')
app.use(bodyParser.json());//数据JSON类型
app.use(bodyParser.urlencoded({ extended: false }));//解析post请求数据
app.use(express.static(path.join(__dirname, 'public')));
app.get('/allstudent', function (req, res) {
    db.getAllStudent((arr) => {
      res.json(arr);
    });
});
app.get('/json.html', function (req, res) {
  res.sendFile(__dirname + '/json.html');
});
});
app.listen(1338);//监听localhost:1338端口

2、编写数据库访问文件db1.js(M)

const MongoClient = require('mongodb').MongoClient;
var ObjectID = require('mongodb').ObjectID;
const url = 'mongodb://localhost:27017';
const dbName = 'xuesheng';
function getAllStudent(callback){
    MongoClient.connect(url, {useNewUrlParser: true}, function(err, client) {
        if(err) {
            console.log("连接数据库失败,请mongod开机");
            return;
        }
        // Use the admin database for the operation
        const db = client.db(dbName);
        console.log("数据库连接成功");
        db.collection('banji').find({}).toArray(function (err,results){
            if(err) {
                console.log("查询数据失败!");
                return;
            }
            console.log(results);
            callback(results)
            //关闭数据库
            client.close();
        })

})
}
exports.getAllStudent = getAllStudent;

3、编写数据展示json.html(V)

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">

<title>JSON数据获取</title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<style type="text/css">
    table{
        width: 78vw;
        margin: auto;
    }
    table,tr,td,th{
        border-collapse: collapse;
        border: 1px solid #ccc;
    }
    tr:first-child {
        background-color: skyblue;
    }
    #bb{
        margin-top: 40px;
    }
</style>
</head>
<body>
    <table id="bb">

</table>
<script>
<script>
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            // arr=JSON.parse(this.responseText); //直接将接收返回的字符转换成JSON对象也可以
            arr=eval("("+this.responseText+")"); //利用eval加括号转换成一个js对象,从而可以访问其中的值
            str="<tr><th>姓名</th><th>年龄</th><th>性别</th><th>籍贯</th></tr>";
            arr.forEach((item) => {
                str += `<tr><td>${item.uname}</td><td>${item.age}</td><td>${item.sex}</td><td>${item.provice}</td></th>`
            });
            document.getElementById("bb").innerHTML =str;         
         }
    };
    xmlhttp.open("GET", "/allstudent", true);
    xmlhttp.send();
  </script>  
</body>
</html>

4 启动服务

node server

5 在IE中访问127.0.0.1:1338/json.html

 

nodejs mongo数据库连接、查询、显示的更多相关文章

  1. 监控Mongo慢查询

    监控Mongo慢查询 1. 使用mongostat监控MongoDB全局情况 mongostat是mongdb自带的状态检测工具,在命令行下使用.它会间隔固定时间获取MongoDB的当前运行状态,并输 ...

  2. Mongo简单查询总结

    mongo 简单查询db.ansheng.findOne()//返回第一条匹配到的数据db.ansheng.findOne({"aaaaa":4})db.ansheng.find( ...

  3. 《ArcGIS Engine+C#实例开发教程》第八讲 属性数据表的查询显示

    原文:<ArcGIS Engine+C#实例开发教程>第八讲 属性数据表的查询显示 第一讲 桌面GIS应用程序框架的建立 第二讲 菜单的添加及其实现 第三讲 MapControl与Page ...

  4. Ajax实现在textbox中输入内容,动态从数据库中模糊查询显示到下拉框中

    功能:在textbox中输入内容,动态从数据库模糊查询显示到下拉框中,以供选择 1.建立一aspx页面,html代码 <HTML> <HEAD> <title>We ...

  5. 程序处理数据库中值字段值为null的查询显示

    1.如果你做了一个简单的注册界面,需要用户进行注册,但有些项是不必要填的,当用户完成注册时,数据库表中的相应字段的值会写入null,但如何将查询的字段的值null显示出来? 2.首先我们学习一下如何向 ...

  6. Mysql数据库连接查询

                                    Mysql数据库连接查询 连接是关系数据库模型的主要特点.连接查询是关系数据库中最主要的查询,主要包括内连接.外连接等.通过连接运算可以 ...

  7. Mongo 应用查询

    官网操作手册,基本就够用 https://docs.mongodb.com/manual/ 下面是个分组查询的例子,项目中用到然后查了个例子,自己理解了下,觉得很好很强大. https://blog. ...

  8. Nodejs+Mongo+WebAPI

    Nodejs+Mongo+WebAPI集成 1.[ 目录]: |- models/bear.js |- node_modules/ |- express |- mongoose |- body-par ...

  9. mormot数据库连接+查询+序列为JSON

    mormot数据库连接+查询+序列为JSON uses SynDB,SynCommons, SynDBRemote, SynOleDB, SynDBMidasVCL, mORMotMidasVCL p ...

  10. kibana中信息分类查询显示的方法

    1.什么是kibana? kibana是ELK(elasticsearch+logstash+kibana)中的K,它是一个可灵活的分析和可视化平台,主要是显示数据以及根据这些数据绘出一些可视化图表, ...

随机推荐

  1. leetcode 剑指offer小结

    栈与队列 剑指 Offer 09. 用两个栈实现队列 使用两个堆栈,一个输出栈,另一个输入栈.队列入队:直接将元素压入输入栈,队列出队:如果输出栈为空,将输入栈元素压入输出栈,再将输出栈元素出栈. 查 ...

  2. 超2T硬盘使用gpt分区及做成lvm

    1.超过2T分区不能用fdisk了,用parted 分区格式化后对新的分区做lvm

  3. docker 部署的mariadb数据库备份还原方案

    docker部署下的mariadb数据库备份还原方案 背景:在使用docker部署的mariadb时,我们会将容器内的数据卷挂载到宿主机上,做简单的备份,容器在正常运行和停止的情况下,能快速创建mar ...

  4. 2345 ip

    121.201.101.43 img1.2345.com121.201.101.43 img2.2345.com121.201.101.43 img3.2345.com121.201.101.43 i ...

  5. JavaScript逗号运算符的用法

    var a = 3, b b = (a++, a) 与 var a = 3, b b = a++ 区别

  6. python flatten()函数的作用和用法

    flatten()函数可以执行展平操作,返回一个一维数组. 函数的作用对象是数组array.矩阵mat,不能直接用于列表list. x.flatten()是把numpy对象x降低到一维,默认是按照 行 ...

  7. 34.MySQL 架构

    一主两从 双机热备 原理:

  8. CF652F 题解

    题意 传送门 在一个长度为 \(m\) 的圆环上有 \(n\) 只初始位置互不相同的蚂蚁,每只蚂蚁的速度都为 \(1\),初始方向为顺时针或逆时针:两只运动方向不同的蚂蚁相遇时会调转方向,问 \(t\ ...

  9. 访问修饰符 protected(s)

    protected 受保护的:可以在当前类的内部以及该类的子类中可以访问. using System; using System.Collections.Generic; using System.L ...

  10. Java基础之标识符和关键字

    关键字 标识符 Java所有的组成部分都需要名字.类名.变量名以及方法名都被称为标识符. Java 中标识符是为方法.变量或其他用户定义项所定义的名称.标识符可以有一个或多个字符. 标识符注意点: 在 ...