1.Broswer端的Ajax

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<h1>登录成功</h1>
<input type="text" id="username"/>
<input type="text" id="address"/>
<button onclick="queryAll()">查询</button>
<div>
<table border="1" cellspacing="0" cellpadding="10" width="500px" id="mytable">
<tr><th>id</th><th>Name</th><th>Password</th><th>Address</th></tr>
</table>
</div>
<script>
function queryAll(){
var xhr;
var mytable=document.getElementById("mytable");
var usernameStr=document.getElementById("username").value;
var addressStr=document.getElementById("address").value;
if(window.XMLHttpRequest){
xhr=new XMLHttpRequest();
}else{
xhr=new ActiveXObject("Microsoft","XMLHTTP")
}
// xhr.open("get","queryAll.do?username"+usernameStr,true);//只有get方法才可以把参数加在这里
xhr.open("post","queryAll.do",true);
xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");
//content-type只有在为post方法的时候才配置 xhr.onreadystatechange=function(){
mytable.innerHTML="<tr><th>id</th><th>Name</th><th>Password</th><th>Address</th></tr>";
//每次刷新html数据的时候,就先会把table清空,然后再添加数据
if(xhr.readyState==4&&xhr.status==200){
// console.log(xhr.responseText);
var datalist=JSON.parse(xhr.responseText);//用json将服务器返回的字符串转换成了数组对象
for(var i=0;i<datalist.length;i++){
console.log(datalist[i].id);//通过属性获取值,datalist[i]是属性
console.log(datalist[i].U_name);
console.log(datalist[i].U_pwd);
console.log(datalist[i].U_address);
mytable.innerHTML=mytable.innerHTML+"<tr><td>"+datalist[i].id+"</td><td>"
+datalist[i].U_name+"</td><td>"
+datalist[i].U_pwd+"</td><td>"
+datalist[i].U_address+"</td></tr>";
}
}
};
//xhr.send(null);//get方法下使用这个发送Ajax请求
xhr.send("username="+usernameStr)//post方法将发送的参数写在这里 }
</script>
</body>
</html>

  2.Server端的响应:

queryUserAll:function(request,response){
console.log(request.body);
let name=request.body.username;
let address=request.body.address;
let sql="select * from t_use where U_name like ?";//单条件查询
name="%"+name+"%";
dbconfig.getconnectionSql(sql,[name],function(err,data){
if(err==null||err==undefined){
//response.write(data);//原生的nodejs方法便发送不出去,因为data是一个object,不是字符串
//方法一
//response.write(JSON.stringify(data));//将data的object对象转换成了字符串。**从数据库中返回的data都是object类型,不是针对Ajax请求
//response.end(); //方法二
response.send(data);//express框架自动将数组对象转换成了字符串,
// response.send(data)就相当于response.write(JSON.stringify(data)
console.log(typeof data);//打印出来是object
}
})
}

  3.主文件app.js中的:

app1.post("/queryAll.do",useModule.queryUserAll);

Tips:

  1>Ajax只更新本html中的数据;

2>B端发起Ajax请求,与S端交互进行数据操作,且**S端返回的是数据(是object类型),需要在B端用JSON进行转换(JSON.parse(xhr.responseText))转换成数组对象;

3>Ajax是通过DOM来更新查询数据,且只更新部分数据,不会刷新整个网页的数据,像一个应用程序一样;

4>通过数据库查询返回的data都是object类型,不是针对Ajax;

Nodejs 之Ajax的一个实例(sql单条件查询&并显示在Browser端界面上)的更多相关文章

  1. php单条件查询,关键字查询

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. Ajax的一个实例及代码

    这是用ajax做的一个小小的应用!当选择menu1的时候,会出来menu里面所有的内容.同理对于menu2.多的不说,代码如下: 首先是inner.html文件 <html><hea ...

  3. SQL 语句在查询分析器执行很快,程序 Dapper 参数化查询就很慢(parameter-sniffing)

    这个问题困扰我好长时间了,使用SQLSERVER 事务探查器找到执行超时的SQL语句,参数查询都是通过执行exe sp_executesql 的存储过程调用,因为它能够分析并缓存查询计划,从而优化查询 ...

  4. Sqlserver Sql Agent Job 只能同时有一个实例运行

    Sqlserver Sql Agent中的Job默认情况下只能有一个实例在运行,也就是说假如你的Sql Agent里面有一个正在运行的Job叫"Test Job",如果你现在再去启 ...

  5. PHP 和 AJAX MySQL 数据库实例

    HTML 表单 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  6. C#构造方法(函数) C#方法重载 C#字段和属性 MUI实现上拉加载和下拉刷新 SVN常用功能介绍(二) SVN常用功能介绍(一) ASP.NET常用内置对象之——Server sql server——子查询 C#接口 字符串的本质 AJAX原生JavaScript写法

    C#构造方法(函数)   一.概括 1.通常创建一个对象的方法如图: 通过  Student tom = new Student(); 创建tom对象,这种创建实例的形式被称为构造方法. 简述:用来初 ...

  7. .NET运用AJAX 总结及其实例

    1.AJAX简介 (1.没有AJAX会怎么样?普通的ASP.Net每次执行服务端方法的时候都要刷新当前页面,比如实现显示服务器的时间.每次都要刷新页面的坏处:页面刷新打断用户操作.速度慢.增加服务器的 ...

  8. Nginx做NodeJS应用负载均衡配置实例

    这篇文章主要介绍了Nginx做NodeJS应用负载均衡配置实例,本文直接给出配置实例,需要的朋友可以参考下. 负载均衡可以把用户的请求分摊到多个服务器上进行处理,从而实现了对海量用户的访问支持.负载均 ...

  9. Ajax实现异步操作实例_针对XML格式的请求数据

    js分类中有一节[原生js异步请求,XML解析]主要说明了js前台是如何处理XML格式请求和如何接受由服务器返回的XML数据的解析,今天我将用一个实例来说明具体要如何操作. 前台的参数类型也是XML使 ...

随机推荐

  1. linux(centos)用户与权限

    1.用户管理 2.用户组 3.权限分配 一.查看与用户相关文件命令: 1.cat 2.more 3.head /etc/passwd    #查看文件的前十行 4.head -2 /etc/passw ...

  2. 第一次链接Azure,固定实例内部IP(DIP)

    下载web pi 下载Azure powershell 打开 Poweshell ISE 输入 Get-AzurePublishSettingsFile -Environment "Azur ...

  3. html5,增加flash插件

    <embed src="2.swf" type="" width="500" height="" >< ...

  4. vs打开项目出现“尚未配置为Web项目XXXX指定的本地IIS URL HTTP://localhost:…… .要打开此项目,需要配置虚拟目录……”提示

    今天打开网上下载的一个源码,出现如标题的这个问题,这是从未遇见的提示.尝试点击是,但是网站还是运行不起来.于是网上搜索,就有了这篇. 解决的方案如下: 注意:也可以用记事本把工程文件(.vcxproj ...

  5. mysqli链接数据库:面向对象

    $mysqli = new mysqli('localhost','root','123','test');//检查连接是否成功if (mysqli_connect_error()){ //注意mys ...

  6. ShowDoc部署手册

    ShowDoc介绍 关于ShowDoc的介绍,请访问:http://blog.star7th.com/2015/11/1816.html 环境依赖 1.必需环境 PHP5.3以上版本.php-gd库 ...

  7. 使用CSS3的background-size优化Sprites图显示

    当我的Sprites图像是300px,如何指定background-size为32px呢?其实不难,只需要一点点数学计算,这是一个很初级的过程. 在我们的实例中,我们使用媒体社交图标.我想让他们都按1 ...

  8. laravel框架总结(九) -- 软删除

    当模型被软删除时,它们并不会真的从数据库中被移除.而是会在模型上设置一个 deleted_at 属性并将其添加到数据库.如果对应模型被软删除,则deleted_at字段的值为删除时间,否则该值为空. ...

  9. JAVA中用堆和栈的概念来理解equals() "=="和hashcode()

    在学习java基本数据类型和复杂数据类型的时候,特别是equals()"=="和hashcode()部分时,不是很懂,也停留了很长时间,最后终于有点眉目了. 要理解equals() ...

  10. C4.5算法的学习笔记

    有日子没写博客了,这些天忙着一些杂七杂八的事情,直到某天,老师喊我好好把数据挖掘的算法搞一搞!于是便由再次埋头看起算法来!说起数据挖掘的算法,我想首先不得的不提起的就是大名鼎鼎的由决策树算法演化而来的 ...