2017-11-14 3 views
0

localhost에서 실행중인 서버로 요청을 보내고 응답을 처리하고 사용자에게 답장을 보내려합니다. 9000이 응답을 반환 :Nodejs POST 요청의 구문 분석 오류

 var post_data = qs.stringify({ 
      'parameter':'some value' 
     }); 

     var post_options = { 
      uri: 'http://localhost:9000', 

      method: 'POST', 
      headers: { 
       'Content-Type': 'application/x-www-form-urlencoded', 
       'Content-Length': Buffer.byteLength(post_data) 
      } 
     }; 

     var post_req = request(post_options,function(error,response,body){ 
      response.setEncoding('utf-8'); 
      if(response.statusCode==200) 
      { 
       console.log(body); 
       var resp_data = JSON.parse(body); 
       var result = validate(resp_data,expected_output); 
       res.setHeader('Access-Control-Allow-Origin','*'); 
       res.writeHead(200,{"Content-Type":"application/json"}); 
       res.write(JSON.stringify(result)); 
       res.end(); 
      } 
     }); 
     post_req.write(post_data); 
     post_req.end(); 

그러나, 콜백 'post_req'의 기능의 '몸'매개 변수는 서버가 로컬 호스트에서 실행중인 경우에도 정의되지 않습니다. '오류'매개 변수를 확인하면 '오류 : 구문 분석 오류'가 표시됩니다. 도와주세요.

답변

0

JSON.parse(body) 유효한 JSON을 전달하고 있습니까? 그렇지 않으면 오류가 발생합니다.

겉보기에는 유효한 JSON을 전달하는 경우 this question을 살펴보십시오. 그것은 여러분이 그것을 객체 나 배열로 전달할 수 있습니다.

+0

에서 찾아 내 파이썬 서버를 고정

솔루션 사실, '응답'매개 변수 자체가 정의되지 않습니다. response.setEncoding ('utf-8') 줄에서 오류가 발생했습니다. TypeError : 정의되지 않은 'setEncoding'속성을 읽을 수 없습니다. –

관련 문제