2017-03-31 93 views
0

我使用的是最新的node.js(和表达),使API调用返回网站... XML ...啊> _>。节点 - 简单的XML API请求

我scowered网页,发现一百万个不同的方式,但我不知道提出请求并获得节点/快递响应最新的,最先进的日期/最佳途径。

我尝试使用https://github.com/request/request,也做了以下内容:

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); 
console.log声明

我得到200,然后application/xml;charset=utf-8

但我的网页上我不明白我在寻找的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'); 
}); 

使用节点访问的API,并实际使用的XML响应,请任何帮助吗?

编辑答案

对于返回的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

这就是ghly我做了什么,但我在解释响应时遇到了麻烦,因为它是XML。我编辑了我原来的问题,并把我的新工作代码。 – Kenny