Programing

NodeJS에서 Http 요청을 통해 json 가져 오기

lottogame 2021. 1. 10. 16:42
반응형

NodeJS에서 Http 요청을 통해 json 가져 오기


다음은 json 응답이있는 내 모델입니다.

exports.getUser = function(req, res, callback) {
    User.find(req.body, function (err, data) {
        if (err) {
            res.json(err.errors);
        } else {
            res.json(data);
        }
   });
};

여기 http.request를 통해 얻습니다. JSON이 아닌 문자열을 수신하는 이유는 무엇입니까?

 var options = {
  hostname: '127.0.0.1'
  ,port: app.get('port')
  ,path: '/users'
  ,method: 'GET'
  ,headers: { 'Content-Type': 'application/json' }
};

var req = http.request(options, function(res) {
  res.setEncoding('utf8');
  res.on('data', function (data) {
       console.log(data); // I can't parse it because, it's a string. why?
  });
});
reqA.on('error', function(e) {
  console.log('problem with request: ' + e.message);
});
reqA.end();

JSON은 어떻게 구할 수 있습니까?


http는 데이터를 문자열로 전송 / 수신합니다. 문자열을 json으로 구문 분석하려고합니다.

var jsonObject = JSON.parse(data);

Node.js를 사용하여 JSON을 구문 분석하는 방법은 무엇입니까?


json : true를 사용하고 있음을 요청하고 헤더 및 구문 분석은 잊어 버리십시오.

var options = {
    hostname: '127.0.0.1',
    port: app.get('port'),
    path: '/users',
    method: 'GET',
    json:true
}
request(options, function(error, response, body){
    if(error) console.log(error);
    else console.log(body);
});

포스트에 대해서도 동일

var options = {
    hostname: '127.0.0.1',
    port: app.get('port'),
    path: '/users',
    method: 'POST',
    json: {"name":"John", "lastname":"Doe"}
}
request(options, function(error, response, body){
    if(error) console.log(error);
    else console.log(body);
});

json옵션을로 설정 true하면 본문에 구문 분석 된 json이 포함됩니다.

request({
  url: 'http://...',
  json: true
}, function(error, response, body) {
  console.log(body);
});

참조 URL : https://stackoverflow.com/questions/17811827/get-a-json-via-http-request-in-nodejs

반응형