2016-10-08 4 views
0

node.js 서버에서 콘솔로 요청을 보내고 있습니다. 응답 데이터를 인쇄하려고합니다 .Json 배열을 인쇄하려고했습니다. 좋아요. pair.I이 정의되지 않은 을 얻고 값 : this-Json 배열에서 key : value를 가져올 수 없습니다.

var request = require('request'); 
var app = require("express")(); 

app.get('/', function(req, res){ 
request.get('http://localhost:8000/api', function(err, response, body){ 

***res.send(body); 
console.log(body);*** 

}); 
}); 

app.listen(8081); 

하지만이 키를 인쇄 할 수 없습니다를 사용

{"id":1,"name":"Asm Arman","confirmed":0,"confirmation_code":null,"created_at":"2016-09-29 16:34:39","updated_at":"2016-10-04 06:55:30"} 

라도 좋습니다는

var request = require('request'); 
var app = require("express")(); 

app.get('/', function(req, res){ 
request.get('http://localhost:8000/api', function(err, response, body){ 
var string=JSON.parse(body); 
res.send(string.name); 
console.log(string.name); 

}); 
}); 

app.listen(8081); 

뿐만 아니라 Json.parse() 나는 또한 Json.stringify을 사용했다(). 그러나 운이 내 JS 파일

입니다.

+1

요청 헤더는 어떻게 생겼습니까? 콘텐츠 유형이 application/json으로 설정되지 않은 경우 요청 모듈이 본문을 제대로 선택하지 못할 수도 있습니다. –

답변

1

요청 본문을 구문 분석하려면 기본적으로 Express와 함께 설치되지 않은 body-parser을 사용해야합니다. JSON, URL 인코딩 된 양식 값 또는 텍스트로 포맷 된 본문을 처리 할 수 ​​있습니다.

npm install body-parser --save 

그런 다음 코드에 다음을 추가하십시오.

var bodyParser = require('body-parser'); 

// place this before your routes 
app.use(bodyParser.json()) 
+0

선생님, 사용했습니다. 이제 키 : 값 쌍을 가져올 수 있습니까? –

+0

선생님, 대단하군요. 일하고 있어요. –

0

보기가 기본 예제입니다. get 메소드가 어떻게 작동하는지보기 위해 문서를 살펴 보았습니다. 응답 본문을 자동으로 파싱 한 예제와 비슷하다고 생각했습니다.

노드의 요청 및 응답 개체가 스트림이라는 것이 짧고 마른 것입니다. 데이터가 스트림되면 data 이벤트가 트리거되어 요청 및 응답에서 본문을 가져 오기 위해 함께 캡처하고 추가 할 수있는 데이터 청크를 제공합니다.

let body = ''; 
http.get('url', (res) => { 
    res.on('data', (chunk) => body += chunk); 
    res.on('end',() => { 
    // now the body variable is prepared and you can do something with it 
    } 
    res.on('error', err => { 
    // Handle errors 
    } 
}); 

데이터는 버퍼와 같은 덩어리로 제공, 그럼, 아마 문자열로 변환을 사용하는 구문 분석해야합니다 같은

그래서, 코드가 보일 것입니다. 그래서, 다음과 같은 것 :

JSON.parse(body.toString()); 
0

console.log가 당신의 객체를 출력하는 방법뿐만 아니라 100 % 확신 할 수 있습니까? 어쩌면 request 당신을 위해 JSON을 구문 분석.

관련 문제