【发布时间】:2014-10-12 01:28:51
【问题描述】:
我在 Node.js/Express 应用程序中使用 mongoose api。我在客户端有一个获取请求,要求提供一些数据,但由于某种原因,数据永远不会到达客户端。怎么了?
后端片段
app.get('/up', isLoggedIn, function(req,res){
req.user.local.level = 2;
req.user.save(function(err){
res.send(req.user.local.level);
});
});
前端片段
function try(){
var ks=1;
if(true){
$.get('/up', function(data){
ks=data;
});
}
console.log(ks);
}
服务器控制台显示2,浏览器控制台还是显示1,怎么回事?
编辑
我接受了你的建议,但它仍然行不通。我做错了什么?
var ks=1;
if(true){
jQuery.ajax({
url: '/up' ,
async: false,
success: function(data) {
ks = data;
console.log(ks);
}
});
}
【问题讨论】:
-
您的问题出在客户端。欢迎来到 async 的美妙世界!你不能那样做。
-
您能再解释一下吗?我想看看哪里出错了。
-
@idude 代码的执行顺序与编写顺序不同。
$.get()与console.log(ks);分开异步执行或“在自己的时间”执行。更详尽的解释见Why is my variable unaltered after I modify it inside of a function?和How to return the response from an Ajax call?
标签: javascript node.js express get mongoose