为了账号安全,请及时绑定邮箱和手机立即绑定

express中ajax请求第一次undefined后续均成功,但结果是上一次的结果而非该次请求的结果

express中ajax请求第一次undefined后续均成功,但结果是上一次的结果而非该次请求的结果

慕婉清6462132 2019-05-21 09:14:02
刚开始用node+express,使用了静态页面请求ajax出现问题,目前结果来看是:1.第一次请求不进入success,打印undefined;2.第二次请求开始,进入success,打印第一次请求结果;3.第三次请求打印第二次请求结果,但查看后台传输值发现,传输过去的值没有问题,接收的值出现问题请教这个问题怎么解决?app.js代码是:varmysql=require('mysql');varexpress=require('express');varapp=express();varsettings=require('./build/db');app.use(express.static('./src'));//连接数据库varconnection=mysql.createConnection(settings.db);connection.connect(function(err){if(err){console.log('[query]-:'+err);}else{console.log('[connectionconnect]succeed!');}});//查询vararr=[];//把搜索值输出app.get('/getname',function(req,res){varselectSQL='selectlinknamefrom`mkln_server_contract`';connection.query(selectSQL,function(err,rows){if(err)throwerror;for(vari=0;i
查看完整描述

2 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

已解决,将res.send(arr)放到connection.query()中即可避免。出现的原因应当是该查询是异步执行,第一次res.send时,arr值未更改。不过这个依次延续的原因,不是很懂。
                            
查看完整回答
反对 回复 2019-05-21
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

不过这个依次延续的原因,不是很懂。
arr是一个全局变量,第一次你同步返回,arr为空,但返回后query继续执行,往arr添加数据。这就是依次延续的原因。
                            
查看完整回答
反对 回复 2019-05-21
  • 2 回答
  • 0 关注
  • 441 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信