2017-03-31 13 views
0

最新のnode.js(およびExpress)を使用して、XML ... Ugh> _>を返すサイトへのAPI呼び出しを行っています。ノード - 単純なxml APIリクエスト

私はウェブを手に入れて何百万もの方法を見つけましたが、ノード/エクスプレスでリクエストを作成して回答を得る最新かつ最新の方法はわかりません。

私はhttps://github.com/request/requestを使用して、次のでした試してみました:

私は 200、その後 application/xml;charset=utf-8を取得 console.log文で
var sendJsonResponse = function(res, status, content) { 
    res.status(status); 
    res.json(content); 
}; 

var token = request 
    .get('some-website.com/api/stuff') 
    .on('response', function(response) { 
     console.log(response.statusCode); 
     console.log(response.headers['content-type']); 
    }); 

sendJsonResponse(res, 200, token); 

しかし、私のページには私が探しているXMLがありません。何か案は?私はhttps://github.com/Leonidas-from-XIV/node-xml2jsを使ってレスポンスを "解析"しようとしましたが、ケース・ノードではXMLレスポンスを処理できませんが、役に立たなくなりました。

var xml2js = require('xml2js'); 
parser.parseString(response, function(err, result) { 
    console.dir(result); 
    console.log('Done'); 
}); 

Nodeを使用してAPIにアクセスし、実際にXMLレスポンスを使用する場合は、何か助けてください。

EDITのANSWER返されたXMLコンテンツのNode.jsの要求とのXML解析用の

:私はこれが動作すると思います

var request = require('request'); 
var xml2js = require('xml2js'); 

var sendJsonResponse = function(res, status, content) { 
    res.status(status); 
    res.json(content); 
}; 

/* GET XML Content*/ 
module.exports.dsRequest = function(req, res) { 

    var parser = new xml2js.Parser(); 

    request('url_for_xml_request', function(error, response, body) { 
     parser.parseString(body, function(err, result) { 
      sendJsonResponse(res, 200, result); 
     }); 

    }); 

}; 

答えて

1

、要求は非同期あるので、あなた以下のように記述してください:

var sendJsonResponse = function(res, status, content) { 
     res.status(status); 
     res.json(content); 
}; 

request.get('http://some-website.com/api/stuff', function (err,response, body) { 
     sendJsonResponse(res, 200, body); 
}); 
+0

That's rou私がやったことはghlyだけど、それはXMLだったので、レスポンスの解釈にも問題があった。私は私の元の質問を編集し、私の新しい作業コードを入れました。 – Kenny

関連する問題