2014-10-12 2 views
0

Node.js/Express 응용 프로그램에서 mongoose api를 사용하고 있습니다. 클라이언트 측에서 데이터를 요청하는 요청을 받았지만 어떤 이유로 데이터가 클라이언트 측에 도달하지 못합니다. 뭐가 잘못 되었 니?Node.js에서 res.send()를 사용하는 방법

발췌문 백엔드의

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); 
        } 

    }); 
    } 
+1

문제가 클라이언트에 있습니다. ** async **의 멋진 세계에 오신 것을 환영합니다! 너는 그렇게 할 수 없다. – SLaks

+0

좀 더 설명해 주시겠습니까? 오류가 어디에 있는지보고 싶습니다. – idude

+1

@idude 코드는 작성된 순서대로 실행되지 않습니다. '$ .get()'은 비동기 적으로 실행되거나 "*. 자신의 시간에 *"실행되며 console.log (ks);와는 별개입니다. 더 자세한 설명은 [함수 내에서 변수를 수정 한 후 내 변수가 변경되지 않는 이유는 무엇입니까?] (https://stackoverflow.com/questions/23667086/why-is-my-variable-unaltered-after-i-)를 참조하십시오. 함수 내부에서 비동기로 수정) 및 [Ajax 호출에서 응답을 반환하는 방법?] (http://stackoverflow.com/questions/14220321/how-to-return-the-response- from-an-ajax-call) –

답변

1
console.log(ks); 

그 코드를 즉시 요청을 보내기로 실행됩니다.

+0

콜백 함수에서 console.log (data)를 사용 하시겠습니까? – idude

+0

@idude : 예; 도착하기 전에 응답을 사용할 수 없습니다. 반환해야 할 경우 약속을 사용하십시오. – SLaks

+0

콜백 함수에 입력 한 내용은 무시됩니다. – idude

관련 문제