2014-12-23 1 views
0

현재 노드 구성에 현재 IP 구성을 반환하는 API가 있습니다. 이상한 점은 콘솔이 올바른 설정을 기록하지만 res.json이 비어있는 것입니다. 나는 무엇을 놓치고있다?!?REST API의 nodejs synchonous 하위 프로세스

var exec = require('exec-sync'); 

app.get('/current', function(req, res) { 
    var c=a=[]; 
    var ret=exec('ifconfig eth0| grep inet\\ '); 
    ret.split('\n').forEach(function(str) { 
    if (str) { 
     a=str.replace(/^\s+|\s+$/g,'').replace(/\s+/g,' ').split(' '); 
     c[a[1].split(":")[0]]=a[1].split(":")[1]; 
     c[a[3].split(":")[0]]=a[3].split(":")[1]; 
    } 
    }); 
    ret=exec('route -n|grep ^0'); 
    ret.split('\n').forEach(function(str) { 
    if (str) { 
     a=str.replace(/^\s+|\s+$/g,'').replace(/\s+/g,' ').split(' '); 
     c['gw']=a[1]; 
    } 
    }); 
    console.log(c); 
    res.json(c); 
}); 

예 콘솔 출력 :

[ addr: '192.168.1.2', 
    mask: '255.255.255.0, 
    gw: '192.168.2.1' ] 

동안 {{설정으로 내장 내 각 페이지에서 JSON | json}}이 []로 표시됩니다.

어떤 아이디어 ??

+0

FireBug 또는 다른 개발 도구로 보면 HTTP 응답 본문 안의 데이터가 보입니까? AngularJS에서 어떻게 요청을 처리합니까? –

+0

아니요, 데이터 세트가 비어 있습니다. 나는 이것을 사용한다 : ' $ http.get ('/ current'). 그런 다음 ( function (ret) { $ scope.network = ret.data; }, function (ret) {console.log ("네트워크로드 오류");} ); ' – user3432565

답변

0

외관이보기보다 쉽습니다. var c=a=[]; 에서 var c=a={}; 에서 문제가 해결됩니다. 당신이 그것을 100 번 보았고 그것을 결코 볼 수없는 멋진 방법은 다음 날에 그렇게 명백합니다 ...