初学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. 记慢慢实现学习cocos 制作游戏

    以下皆为记录所用 现在根据官方教程,我已经实现了一个小东西可以上下跳动 了解了Sprite挂载脚本,以及编辑脚本,还有动画的一些入门东西 还了解了如何设置监听键盘按下的输入,这个是没问题的 问题一 如 ...

  2. openssl的自签名证书不被信任问题

    1.不同的浏览器安全策略不同 1.1谷歌系的会提示没有绑定域名. 此服务器无法证实它就是 192.168.0.127 - 它的安全证书没有指定主题备用名称(Subject Alternative Na ...

  3. TP5--路由

    路由定义采用\think\Route类,通常是在应用的路由配置文件application/route.php进行注册 use think\Route; //路由规则 // Route::rule('/ ...

  4. esxi虚拟机定时创建快照

    1.vim-cmd vmsvc/getallvms  列出所有虚拟机信息 2.获取需要备份的虚拟机的Vmid 3.执行快照  vim-cmd vmsvc/snapshot.create Vmid $( ...

  5. R8051_simulation

    1 下载 git clone https://github.com/risclite/R8051.git 2 编辑文件 mkdir work && mv sim tb flist .. ...

  6. git通过ssh方式免密克隆代码仓库

    git上添加ssh公钥 略过 终端命令行 格式: git clone ssh://[user@]host.xz[:port]/path/to/repo.git/ 栗子: git clone ssh:/ ...

  7. 你能谈谈HashMap怎样解决hash冲突吗

    在Java编程语言中,最基本的结构就是两种,一种是数组,一种是模拟指针(引用),所有的数据结构都可以用这两个基本结构构造,HashMap也一样. 当程序试图将多个 key-value 放入 HashM ...

  8. Software--BigData--StreamingData

    2018-03-29 16:13:34 一 : 流系统分层架构设计 二: 分层技术选型分析 三:底层 -- 服务配置和协调 ZooKeeper

  9. SpringBoot项目启动

    SpringBoot项目与其他项目启动方式有些不同. 查看是否是SpringBoot项目,可以查看在项目的pom.xml中是否有引入SpringBoot: 上图中就是对应的spring-boot.若有 ...

  10. CH32F103C8T6的USB开发(一)

    一.背景 项目用到单片机采集模拟量数据,原先使用USB转串口,速度嫌慢,还要转串口芯片,电脑还要安装驱动,现更改为采用USB的HID类来传输. 二.单片机选型 STM32F103的USB接口简单易用, ...