我将API调用链接在一起并使用正则表达式编辑结果,以便将数据放入不断增长的可读数组中。
这是我的代码:
// MODULES - INCLUDES
var xml2js = require('xml2js');
var parser = new xml2js.Parser();
var rp = require('request-promise');
// CHAINED REQUESTS + OUTPUT
// CHAIN 1 - CSS REQUEST
rp(csshttprequest)
.then(function (resultcss) {
var cssrmline1 = resultcss.replace(/<\?xml\sversion='1\.0'\sencoding='utf-8'\?>/g, '');
var cssrmline2 = cssrmline1.replace(/<soapenv:Envelope\sxmlns:soapenv="http:\/\/schemas.xmlsoap.org\/soap\/envelope\/">/g, '');
var cssrmline3 = cssrmline2.replace(/<soapenv:Body>/g, '');
var cssrmline4 = cssrmline3.replace(/<ns:listCssResponse\sxmlns:ns="http:\/\/www\.cisco\.com\/AXL\/API\/[0-9]*\.[0-9]">/g, '');
var cssrmbottomup1 = cssrmline4.replace(/<\/soapenv:Envelope>/g, '');
var cssrmbottomup2 = cssrmbottomup1.replace(/<\/soapenv:Body>/g, '');
var cssxmlscrubbed = cssrmbottomup2.replace(/<\/ns:listCssResponse>/g, '');
parser.parseString(cssxmlscrubbed, function (err, result) {
var cssx = result['return']['css'];
// console.log(cssx);
// CHAIN 2 - PARTITIONS REQUEST
return rp(partitionshttprequest)
.then(function (resultpartitions) {
var partitionsrmline1 = resultpartitions.replace(/<\?xml\sversion='1\.0'\sencoding='utf-8'\?>/g, '');
var partitionsrmline2 = partitionsrmline1.replace(/<soapenv:Envelope\sxmlns:soapenv="http:\/\/schemas.xmlsoap.org\/soap\/envelope\/">/g, '');
var partitionsrmline3 = partitionsrmline2.replace(/<soapenv:Body>/g, '');
var partitionsrmline4 = partitionsrmline3.replace(/<ns:listRoutePartitionResponse\sxmlns:ns="http:\/\/www\.cisco\.com\/AXL\/API\/[0-9]*\.[0-9]">/g, '');
var partitionsrmbottomup1 = partitionsrmline4.replace(/<\/soapenv:Envelope>/g, '');
var partitionsrmbottomup2 = partitionsrmbottomup1.replace(/<\/soapenv:Body>/g, '');
var partitionsxmlscrubbed = partitionsrmbottomup2.replace(/<\/ns:listRoutePartitionResponse>/g, '');
parser.parseString(partitionsxmlscrubbed, function (err, result) {
var partitionsx = result['return']['routePartition'];
// console.log(cssx);
// console.log(spacer);
console.log(partitionsx);
console.log(spacer);
var partitionsxedit = partitionsx.replace(/name:/g, 'routePartitionName');
console.log(partitionsxedit);
我需要能够在解析XML之前和解析XML之后对数据运行正则表达式过滤器。
我很困惑为什么我不能做最后两行。
var partitionsxedit = partitionsx.replace(/name:/g, 'routePartitionName');
console.log(partitionsxedit);
我收到以下错误:未处理的拒绝TypeError:partitionsx.replace不是函数。