Javascript 如何在Node.js中使用res.send()
我正在Node.js/Express应用程序中使用mongoose api。我在客户端有一个get请求,请求一些数据,但由于某些原因,这些数据从未到达客户端。怎么了 后端代码片段Javascript 如何在Node.js中使用res.send(),javascript,node.js,express,get,mongoose,Javascript,Node.js,Express,Get,Mongoose,我正在Node.js/Express应用程序中使用mongoose api。我在客户端有一个get请求,请求一些数据,但由于某些原因,这些数据从未到达客户端。怎么了 后端代码片段 app.get('/up', isLoggedIn, function(req,res){ req.user.local.level = 2; req.user.save(function(err){ res.send(req.user.local.level); }); })
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);
}
前端片段
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);
}
});
}
在响应到达之前,该代码在您发送请求时立即运行。您的问题在客户端。欢迎来到异步的精彩世界!你不能那样做。你能再解释一下吗?我想看看错误在哪里。@idude代码的执行顺序与编写的顺序不同。
$.get()
异步执行,或“在自己的时间内”独立于控制台.log(ks)执行代码>。有关更详细的解释,请参阅,您是否建议我在回调函数中使用console.log(数据)?@idude:Yes;您不能在响应到达之前使用它。如果您需要返回它,请使用承诺。我在回调函数中键入的任何内容似乎都会被忽略