2017-04-24 10 views
0

함수 노드에 요청 패키지에서 get 메소드를 액세스 할 수 없습니다 :이 코드 내 기능 노드 중 하나에내가 요청 모듈 추가 및 설명서에 따라 주요 settings.js의 변화 만든

// Anything in this hash is globally available to all functions. 
    // It is accessed as context.global. 
    // eg: 
    // functionGlobalContext: { os:require('os') } 
    // can be accessed in a function block as: 
    // context.global.os 

    functionGlobalContext: { 
    requestModule:require('request').defaults({jar: true}) 
     // os:require('os'), 
     // octalbonescript:require('octalbonescript'), 
     // jfive:require("johnny-five"), 
     // j5board:require("johnny-five").Board({repl:false}) 
    }, 

:

var request = context.global.requestModule; 
request.get('http://192.168.0.44:3000' + '/api/stats', 
function (err, data) { 
    if (err) { 
     console.log("could not process data"); 
    } 
    else { 
     var body = JSON.parse(data.body); 
     msg.payload = body.deviceCount; 
    } 
}); 
return msg; 

내 노드 빨간색 버전이라고 다시 요청 객체의 비동기 호출하기 전에 msg을 반환하기 때문에 작동하지 않습니다 (0.16.2)

+0

왜 요청 모듈을 사용해야합니까? http-request 노드는 정상적으로 작동합니다. – hardillb

+0

기본 HTTP 요청 노드에없는 각 데이터 액세스 요청과 함께 추가 인증 프로세스가 필요합니다. –

답변

0

입니다. 다음 작업을해야합니다 :

var request = context.global.requestModule; 
request.get('http://192.168.0.44:3000' + '/api/stats', 
function (err, data) { 
    if (err) { 
     console.log("could not process data"); 
    } 
    else { 
     var body = JSON.parse(data.body); 
     msg.payload = body.deviceCount; 
     node.send(msg) 
    } 
}); 
+0

고마워요. 그러나 request.get은 여전히 ​​context.global.requestModule에서 인식되지 않습니다. –