前端代码:

<!DOCTYPE html>
<html lang="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 <head>
  <title>get data from db</title>
 </head>

 <body>
  <form id="form1">
    用户名:<input type="text" id="username" name="name" value=""><br/>
    <input type="button" value="查询" onclick="search();"/>
  </form>

  <table border="1">
    <tr>
        <th>Id</th><th>name</th><th>password</th>
    </tr>
    <tbody id="mytable">
    </tbody>
  </table>
 </body>
</html>
<script type="text/javascript">
<!--
function search(){

    var obj={
        name:document.getElementById("username").value,
    };

    var xhr=new XMLHttpRequest();
    xhr.open('put','index.html',true);

    xhr.onload=function(e){
        if(this.status==200){
            var arr=JSON.parse(this.response);
            updateTable(arr);
        }
    };

    xhr.send(JSON.stringify(obj));
}

function updateTable(arr){
    var table=document.getElementById("mytable");

    for(var i=table.childNodes.length-1;i>=0;i--){
        table.removeChild(table.childNodes[i]);
    }

    for(var i=0;i<arr.length;i++){
        var emp=arr[i];

        var tr=document.createElement("tr");

        var td1=document.createElement("td");
        td1.appendChild(document.createTextNode(emp.id));
        tr.appendChild(td1);

        var td2=document.createElement("td");
        td2.appendChild(document.createTextNode(emp.name));
        tr.appendChild(td2);

        var td3=document.createElement("td");
        td3.appendChild(document.createTextNode(emp.password));
        tr.appendChild(td3);

        table.appendChild(tr);
    }
}

//-->
</script>

运行情况截图:

后端代码:

'use strict';

var express=require('express');
var http=require('http');
var fs=require('fs');

var app=express();

var mysql=require('mysql');
var pool=mysql.createPool({
    host:'127.0.0.1',
    port:'3306',
    database:'test',
    user:'root',
    password:'12345678',
});

app.get('/index.html',function(req,rsp){
    rsp.sendFile(__dirname+'/index.html');
});

app.put('/index.html',function(req,res){
    req.on('data',function(data){
        var obj=JSON.parse(data.toString());// 取得Ajax提交的参数
        console.log(obj);

        pool.getConnection(function(err,connection){
            if(err){
                res.send('Can not connect to MySql DB');
                console.log(err);
            }else{

                var str;
                connection.query("select * from emp where name like ? ","%"+obj.name+"%",function(err,result){
                    if(err){
                        str='Search failed';
                    }else{
                        str="Search succeed";
                    }
                    console.log(str);
                    console.log("result.length="+result.length);

                    var arr=[];
                    for (var i=0; i<result.length; i++) {
                        var tmp = result[i];
                        var emp=new Object;
                        emp.id=tmp['Id'];
                        emp.name=tmp['name'];
                        emp.password=tmp['password'];

                        arr.push(emp);
                    } 

                    connection.release();
                    res.send(JSON.stringify(arr));
                })
            }
        });
    });
});

app.listen(8080,"127.0.0.1");

【Nodejs】使用put方式向后端查询数据并在页面显示的更多相关文章

  1. MySql查询数据令某字段显示固定值

    我们用SQL查询数据时后,基于某些原因不想看到某字段的值,比如密码,我们可以通过创建视图,忽略某一字段的值. 同时我们也可以直接通过SQL语句来让其显示某个固定值: (1)一般查询语句: SELECT ...

  2. 【nodejs】使用put方式向后端提交数据

    页面代码: <!DOCTYPE html> <html lang="utf-8"> <meta http-equiv="Content-Ty ...

  3. nodejs做中间层,向后端取数据

    var  http=require('http'): http.get('http://baidu/dksapi/weiboLive/GetSquareLive?pagecount=1&pag ...

  4. HQL 查询数据 (获取页面输入的查询条件字段)

    /* * 查询提取位置表所有数据 * */ public String ListEtlExtractPositionOfAll(){ // 接受数据库中传送的code int code = Integ ...

  5. 【Ajax】接收后台数据在html页面显示

    Java代码 PrintWriter out=response.getWriter(); //向客户端发送字符数据 response.setContentType("text/text&qu ...

  6. jsp多条件查询及查询结果在同一页面显示(原创)

    第一步,建立main.jsp页面,使用frameset分上下两个框架,上部是query.jsp.下部是detail .detail显示的是showdetail.jsp的页面 <title> ...

  7. 通过ajax GET方式查询数据,Django序列化objects

    点击“查找2”按钮,通过ajax GET方式进行查询数据,这样页面不需要整体刷新,之后清空tbody数据,将查询结果重新附加到tbody 前端html: <div class="box ...

  8. GeoMesa Java API-写入与查询数据

    GeoMesa Java API-写入与查询数据 写入数据 DataStore SimpleFeatureType SimpleFeature 写入 查询数据 几个常用查询条件 设置最大返回条目: 设 ...

  9. 使用ajax实现前后端是数据交互

    ajax的概念 ajax一个前后台配合的技术,它可以让javascript发送http请求,与后台通信,获取数据和信息.ajax技术的原理是实例化xmlhttp对象,使用此对象与后台通信.jquery ...

随机推荐

  1. 前些日子用css画的大白

    闲来无事用css画的一个大白...其实有一些地方偷懒了用svg去画的,因为用纯几何形状组合去画变化那么复杂的曲线不太现实.但svg曲线坐标还是自己一点点调出来的,没有用工具生成. ps:点击身体的某些 ...

  2. 【Deep Learning】一、AutoEncoder

    Deep Learning 第一战: 完成:UFLDL教程 稀疏自编码器-Exercise:Sparse Autoencoder Code: 学习到的稀疏参数W1: 参考资料: UFLDL教程 稀疏自 ...

  3. Syncovery : Google Docs protocol completely replaced with Google Drive

    Google Docs protocol completely replaced with Google Drive In May 2015, the older Google Docs API wa ...

  4. max_binlog_cache_size

    http://blog.mimvp.com/2017/07/mysql-yi-ge-can-shu-yin-qi-de-dang-ji-xue-an/ max_binlog_cache_size 表示 ...

  5. 如何让access空值变成0?(确切的说是让access Null值变成0)

    方法一 if  IsNull(Me.新_退休费) = True Then Me.新_退休费 = 0 方法二 if Nz(Me.原_退休费) = Me.原_退休费 Then Me.原_退休费 = 0 有 ...

  6. Extjs gridPanel 动态指定表头

    var colMArray = new Array(); colMArray = [{header : "产品代码", dataIndex : "cpdm", ...

  7. .NET:事务、并发、并发问题、事务隔离级别、锁等相关资料整理

    这里面的有三篇文章,必须要读读:http://technet.microsoft.com/en-us/library/ms189130(v=sql.105).aspx. 这里有一个系列,我还没有读:h ...

  8. jQueryEasyUI创建菜单主页

    function addTab(title,path){ funcTab.tabs('add',{ title: title, fit:true, href:'${ctx}/login/forword ...

  9. tomcat完整配置

    规划: 网站网页目录:/web/www 域名:www.test1.com 论坛网页目录:/web/bbs URL:bbs.test1.com/bbs 网站管理程序:$CATALINA_HOME/wab ...

  10. Objective—C中的排序及Compare陷阱

    campare陷阱 NSString有多个compare相关方法: - (NSComparisonResult)compare:(NSString *)string; - (NSComparisonR ...