2012-09-10 4 views
0

module.exports 내부 기능을 사용 : 그것은 모든 module.exports으로 둘러싸인 것내가 내부에 다음과 같은 기능을 둘러싸는 모듈을 구축하기 위해 노력하고있어

request urlString, (error, response, body) -> 
     return JSON.parse(body) if !error && response.statusCode == 200 

. 함수가 실행되지만 요청시 콜백에서 본문을 반환 할 수 없습니다.

제안 사항?

+0

당신은 당신이 여기있는 것보다 더 많은 코드를 포함 할 가능성이 필요, 더 명시 –

+0

@elbou을하시기 바랍니다 : 당신은 콜백 내부에서'return' 수 없습니다. 'request'에 대한 두 번째 매개 변수는 * 콜백 *입니다.이 함수는 요청하기 위해 보내고 원하는 데이터가있을 때 _calls back_을 요청합니다. 콜백 본문 안의 코드가 다른 범위에 있으므로 (요청 호출 바로 다음 코드보다 훨씬 나중에 실행되기 때문에) 거기에서 돌아올 수 없습니다. 호출 함수의 매개 변수로 콜백을 사용하고 결과와 함께 호출해야합니다. –

답변

0

나는 당신이 원하는 것이 parseJSON func라고 생각합니다. 내가 직접이 코드를 사용하더라도 :

#file requestJSON.js 


requestJSON = (urlString, callback)-> 
    request urlString, (error, response, body) -> 
     if !error && response.statusCode == 200 
      bodyJSON = JSON.parse body 
     calllback error,bodyJSON 
     return 

module.exports=requestJSON 


#file requestJSON.usage.js 

requestJSON = require "./requestJSON" 
requestJSON "json API", (error,jsonData)-> 
    console.log jsonData 
    return 
관련 문제